用typedef定义类型的总结分析

除了可以直接使用C提供的标准类型名(如:int ,char ,float,double,long等)和自己声明的结构体、共用体、枚举类型外,还可以使用typedef声明 新的类型名 来代替 已有的 类型名

如:
typedef int INTEGER;
typedef float REAL;
指定用INTEGER代表int类型,REAL代表float类型,这样,下面的两行等价:
1)int i,j;  float a,b;
2)INTEGER i,j;   REAL a,b;
可以声明结构体类型:
复制代码 代码如下:


typedef struct
{
int month;
int day;
int year;
}DATE;


声明了新类型DATE,这时就可以使用DATE定义变量: DATE birthday(不要写成 struct DATE birthday;);DATE* p;//指向结构体类型的指针。
还可以进一步:
1)typedef int NUM[10];//声明整型数组类型
    NUM n;//定义n为整型数组变量,其中n[0]--n[9]可用
2)typedef char* STRING;//声明STRING为字符指针类型
    STRING p,s[10];//p为字符指针变量,s为指针数组
3)typedef int (*POINTER)();//声明POINTER为指向函数的指针类型,该函数返回整型值,没有参数
    POINTER P1,P2;//p1,p2为POINTER类型的指针变量
说明:
1)用typedef可以声明各种类型名,但不能用来定义变量,用typedef可以声明数组类型、字符串类型、使用比较方便。
例如:定义数组,原来是用:int a[10],b[10],c[10],d[10];由于都是一维数组,大小也相同,可以先将此数组类型声明为一个名字:
typedef int ARR[10];
然后用ARR去定义数组变量:
ARR a,b,c,d;//ARR为数组类型,它包含10个元素。因此a,b,c,d都被定义为一维数组,含10个元素。可以看到,用typedef可以将 数组类型 和 数组变量 分离开来,利用数组类型可以定义多个数组变量。同样可以定义字符串类型、指针类型等。
2)用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。
3)typedef与#define有相似之处,但事实上二者是不同的,#define是在 预编译 时处理,它只能做简单的字符串替换,而typedef是在 编译时 处理的。它并不是做简单的字符串替换,而是采用如同 定义变量 的方法那样来 声明 一个类型。
例如:typedef int COUNT;和#define COUNT int的作用都是用COUNT代表int,单事实上它们二者是不同的。
4)当不同源文件中用到 同一类型数据时,常用typedef声明一些数据类型,把它们单独放在一个文件中,然后在需要用到它们的文件中用#include命令把它们包含进来。
5)typedef有利于程序的通用与移植。

typedef可以通过给已有的类型起一个新的名字来定义新的类型。这样做的好处是可以增加代码的可读性和可维护性。通过typedef,我们可以为各种类型声明新的类型名,比如数组类型、字符串类型等。同时,typedef也可以用来定义结构类型或者指向结构类型的指针。 举个例子,我们可以使用typedef定义一个新的类型名为INTEGER,它表示整数类型。同样地,我们可以定义一个新的类型名为REAL,它表示实数类型。这样一来,我们就可以使用INTEGER和REAL关键字来声明对应的变量,使代码更加直观和易读。 在C代码中,typedef的使用非常广泛,特别是在复杂的情况下。它与#define虽然有些相似,但实际上是有区别的。typedef在某种程度上提供了更好的类型安全性和可读性,因此在C代码中被广泛采用。 总结起来,typedef可以通过给已有的类型起一个新的名字来定义新的类型,增加代码的可读性和可维护性。它可以用来声明各种类型名,包括数组类型、字符串类型等。同时,typedef也可以用来定义结构类型或者指向结构类型的指针。在C代码中,typedef的使用非常广泛,特别是在复杂的情况下。它与#define有一些相似之处,但在一些复杂的用法上有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [用typedef定义类型详细总结](https://download.csdn.net/download/weixin_38528180/12813352)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [用typedef定义类型总结分析](https://download.csdn.net/download/weixin_38577922/13995007)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [关于C/C++中typedef定义与用法总结](https://download.csdn.net/download/weixin_38631599/12817045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值