《C和指针》笔记9: typedef

C语言支持一种叫作typedef的机制,它允许你为各种数据类型定义新名字。typedef声明的写法和普通的声明基本相同,只是把typedef这个关键字出现在声明的前面。例如,下面这个声明:

c 复制代码
char *ptr_to_char;

把变量ptr_to_char声明为一个指向字符的指针。但是,在添加关键字typedef后,声明变为:

c 复制代码
typedef char *ptr_to_char;

这个声明把标识符ptr_to_char作为指向字符的指针类型的新名字。可以像使用任何预定义名字一样在下面的声明中使用这个新名字。例如:

c 复制代码
ptr_to_char a;

使用typedef声明类型可以减少使声明变得又臭又长的危险,尤其是那些复杂的声明。而且,如果以后觉得应该修改程序所使用的一些数据的类型时,修改一个typedef声明比修改程序中与这种类型有关的所有变量(和函数)的所有声明要容易得多。

另外要注意应该使用typedef而不是#define来创建新的类型名,因为后者无法正确地处理指针类型。例如:

c 复制代码
#define d_ptr_to_char char *
d_ptr_to_char a, b;

正确地声明了a,但是b却被声明为一个字符(参考《C和指针》笔记1: 指针声明)。在定义更为复杂的类型名字时,如函数指针或指向数组的指针,使用typedef更为合适。

参考

  1. 《C和指针》
相关推荐
神明不懂浪漫1 分钟前
【第二章】HTML2——表格、表单标签
开发语言·经验分享·笔记·html
十月的皮皮3 分钟前
C语言学习笔记20260609-字符串反转两种实现方法
c语言·笔记·学习
CodeSheep程序羊6 分钟前
宇树科技,即将上市!
java·c语言·c++·人工智能·python·科技·硬件工程
时代文章9 分钟前
GPT-SoVITS 模型测试笔记
笔记·gpt·语音识别
GLDbalala17 分钟前
GPU PRO 5 - 3.3 Bokeh Effects on the SPU 笔记
笔记
HZ·湘怡25 分钟前
数据结构之排序算法 (1)--插入排序
c语言·数据结构·算法·排序算法
ouliten25 分钟前
[Triton笔记7]融合注意力 (Fused Attention)
人工智能·笔记·算法
BAGAE37 分钟前
FEC-RS前向纠错编码理论及工程实施研究
c语言·c++·qt·算法·决策树·链表
世***y1 小时前
有温度的服务,有品质的生活
笔记
逸模1 小时前
从 CAD+SU 到逸模|效果图制作,告别反复手动同步主旨
大数据·笔记·其他·信息可视化·产品经理