typedef最核心的用法:给数据类型取别名,这个别名既可以是此数据类型的替换,也是指向此数据类型的指针。
具体用法(对普通数据类型取别名):
对结构体数据类型取别名:
typedef与define的区别:
define只是单纯的替换,而typedef是对数据类型的封装,两个方面比较:
1、代码比较:
typedef:
define:
unsigned integer会使代码报错,原因是typedef只能对数据类型进行整体封装,不能局部封装,所以当你想要对unsigned int类型进行取别名时,只能整体取。修改代码:
2、代码比较:
typedef:
define:
define这里为什么报错呢?是因为#define integer int*只能声明一个指针i,对第二个j是个int类型的数据,相当于int *i,j;所以变量j不能赋值一个地址,即会报错。修改代码:
所以typedef对int *整体封装后,不管后面跟多少变量名,都会被声明为指针,而define只能声明一个指针。