C语言18-typedef
C语言32-typedef
- typedef的概述
由于C语言中出现了结构体,枚举,数组等过长的数据类型,所以C语言中提供了为数据类型取一个别名的方法typedef
格式:typedef 数据类型 别名;
当然teypedef还可以在别名的基础上再起一个别名
格式:typedef 原来的别名 新的别名;
2.typedef和基本数据类型
typedef可以为基本数据类型取别名
3.typedef和指针
typedef除了可以为基本数据类型取别名外还可以为指针类型取别名
4.typedef和结构体
注意给结构体定义别名的时候我们可以省略结构体的名称,也可以不省略。
5.typedef和指向结构体的指针
typedef还可以为指向结构体的指针取别名,这里要注意typedef后面跟的数据类型为结构体指针变量名之前的部分。当人在为结构体指针取别名的时候我们也可以省略结构体指针的名称,也可以不省略
6.typedef和枚举
typedef在为枚举取别名的时候可以省略枚举名称,也可以不省略
7.typedef和指向函数的指针
typedef为指针取别名的时候和其它的不同
格式:typedef 指向函数的指针; //其中指向函数的指针的别名就是指向函数的指针的名称
8.typedef和#defined的区别
我们在用typedef为数据类型取别名的,我们很容易想到用宏定义#defined也可以实现同样的功能,但是我们必须注意的是宏定义仅仅是替换,它不会将定义的宏名当做一种数据类型,仅仅是替换,而typedef取的别名则会是一种数据类型。所以我们在一次性定义多个变量的时候,如果用typedef取的别名去定义
那么所有的变量都会是别名的代表的类型,如果用宏定义的宏名去定义则定义的第一个变量为一种数据变量,之后的则不是变量而是字符
所以我们在为一个数据类型取别名的时候最好用typedef而不用宏定义

浙公网安备 33010602011771号