有关typedef定义新的类型名的作用

2024-04-18 08:18

本文主要是介绍有关typedef定义新的类型名的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一般形式:typedef已有类型新类型名;
一旦重命名类型,就可以以新类型名来描述数据。习惯上新类型名用大写字母表示。
例如:
(1)typedef int integer;/*重命名整型*/
integer i,j;
(2)typedef int COUNT;/*命名一计数类型COUNT*/
COUNT n1,n2;
(3)typedef int NUM[100];/*命名一整型数组类型NUM*/
NUM n:
(4)typedef char sTRING[81];/*命名一字符串类型STRING*/
STRING str1,str2;
(5)typede{struct
{int day;
int month;
int year;
}DATE;/*命名一结构体类型DATE*/
DATE datel,date2;


重命名类型的作用
重命名类型的作用如下:
(1)有利于加强数据描述的针对性,增加程序的可读性。如用上面重命名类型coUNT来定义计数器变量,一目了然。
(2)有利于程序的通用和移植。C程序设计有时可能会依赖于具体的计算机。例如,整型数据在某种机器上可能占2字节内存单元,在另外一种机器上又可能占4字节的内存单元,若将程序从2字节的机器移植到4字节的机器,则要将所有int说明改成long说明,修改的部分可能较多,程序的移植性较差。
在整型数占2字节的机器上,若用typedef重命名类型:typedef int integer;,然后可用in‘teger定义变量。若要将程序移植到整型数占4字节的机器上,只要用long代替原来的int即可,这时可再用typedef重命名类型:typedef long integer;,此时程序中用integer定义的变量都为long型,其它部分不变,方便移植。
(3)有利于减少程序书写的工作量。若程序中有若干处要用到同一种复杂数据类型,书写起来比较复杂,通过重命名类型,可减少重复劳动。


几点说明
(1)用typedef只能对已有类型增加一个名字,而不能自己去创造一个新的类型。
(2)用typedef可以对各种已有类型增加新的类型名,但不能用来定义变量。
(3)重命名类型,可以将数组类型与数组变量分离开来。
(4)重命名类型与编译预处理不同,是在编译时处理,实际上也并不是作简单的字符串替换。
(5)常将一些常用的重命名类型单独放一文件中,需要时用#include指令将它们包含至程序中

这篇关于有关typedef定义新的类型名的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/914239

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

JAVA transient 关键字作用详解

《JAVAtransient关键字作用详解》Java的transient关键字用于修饰成员变量,使其不参与序列化过程,通过自定义序列化方法,可以手动控制transient变量的序列化行为,本文给大... 目录一、transient关键字作用二、原理详解三、典型使用场景四、代码示例五、注意事项六、与 stat

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

Spring Boot/Spring MVC核心注解的作用详解

《SpringBoot/SpringMVC核心注解的作用详解》本文详细介绍了SpringBoot和SpringMVC中最常用的15个核心注解,涵盖了请求路由映射、参数绑定、RESTfulAPI、... 目录一、Spring/Spring MVC注解的核心作用二、请求映射与RESTful API注解系列2.1

C#中的sealed修饰符的作用详解

《C#中的sealed修饰符的作用详解》在C#中,sealed修饰符的作用是“密封”用来阻止类被继承,或者阻止方法/属性在派生类中被重写,接下来通过本文给大家介绍C#中的sealed修饰符的作用详解,... 目录✅ 1.sealed用于类(class)作用:示例:✅ 2.sealed用于方法或属性(必须与

python中的鸭子类型详解

《python中的鸭子类型详解》鸭子类型是Python动态类型系统的灵魂,它通过强调“行为”而非“类型”,赋予了代码极大的灵活性和表现力,本文给大家详细介绍python中的鸭子类型,感兴趣的朋友一起看... 目录1. 核心思想:什么是鸭子类型?2. 与“传统”静态类型语言的对比3. python 中无处不在

Java枚举类型深度详解

《Java枚举类型深度详解》Java的枚举类型(enum)是一种强大的工具,它不仅可以让你的代码更简洁、可读,而且通过类型安全、常量集合、方法重写和接口实现等特性,使得枚举在很多场景下都非常有用,本文... 目录前言1. enum关键字的使用:定义枚举类型什么是枚举类型?如何定义枚举类型?使用枚举类型:2.

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方