厦门网站建设技术支持,菜鸟式网站建设图书,做网站该注意哪些基本要素,用自己服务器做网站一、问题 语⾔有 32 个关键字#xff0c;其中 int 的功能是声明整型变量#xff0c;struct 的功能是声明结构体变量#xff0c;那么 typedef 的功能是什么呢#xff1f;
二、解答
1. typedef 的功能 在 C 语⾔中除了可以使⽤标准类型名#xff08;如 int、 char、float …一、问题 语⾔有 32 个关键字其中 int 的功能是声明整型变量struct 的功能是声明结构体变量那么 typedef 的功能是什么呢
二、解答
1. typedef 的功能 在 C 语⾔中除了可以使⽤标准类型名如 int、 char、float 等和⾃定义结构体、共⽤体等类型外还可以使⽤ typedef 给⼰有的类型定义别名typedef 的功能就是给⼰经存在的数据类型取⼀个别名注意并不是重新定义⼀个新的数据类型。
2.为什么要给数据类型起别名 很多⼈都喜欢给别⼈“起外号typedef 关键字就好⽐是这个喜欢起外号的⼈。外号是随便起的吗并不是外号往往是根据这个⼈的特点⽽起的。 例如带眼镜的外号就 叫“⼩四眼”如果长的⾼点就叫 “ ⼤个 ” 长的⽩点、胖点可能就叫他“⽩猪”等。 通过这些外号⼈们可以更快地记住这些⼈揭示别⼈缺点的外号可能会伤及他⼈的⾃尊所以尽量不要给别⼈起外号)。同样给数据类型起外号也是有原因的是为了更能突显出这个数据类型在这个程序中的作⽤。 例如int 型的数据在这个程序⾥主要起到了计数的 作⽤那么 typedef 就可以给这个 int 起个外号。例如
typedef int COUNT, COUNT a,b; 当 COUNT 类型出现在程序中定义变量时程序员们可以很清晰地判断出这是个⽤于计数的变量。这个外号使程序的可读性⼤⼤增强。
3. typedef 起别名引发的迷惑 在⾃定义结构体的数据类型中会经常⽤到 typedef 为这个结构体取个别名例如
typedef struct PERSON
{int id;int name[20];char sex;int age;
} PER, *Per1;
为⾃定义的这个结构体取的别名为 PER 和 Perl代表上⾯的这个结构体类型定义 ⼀个此结构体类型的变量al有如下⽅法
(1) struct PERSON al;
(2) PER al; 这两种定义变量的⽅法是没有区别的。定义⼀个此结构体类型的指针的⽅法如下
(1) struct PERSON *a2;
(2) Perl a2;
(3) PER *s2; 上述三种定义结构体类型指针的⽅法也是没有区别的。 上述定义变量的⽅法很多初学者会迷惑在此明确列出希望可以减少在学习上的迷惑。其实在定义结构体类型的变量 a1 时可以将结构体 struct PERSON{...} 看成⼀个整体,typedef 就相当于给 struct PERSON{.…} 起了个别名叫 PER ;与此同时给 struct PERSON {…}* 起了个别名叫 Per1。
三、总结 很多⼈在学习 typedef 时都会将其误认为是定义新的数据类型。其实不然只是起个别名⽽已。