关于typedef
例如:
即用了typedef关键字可以将一个数据类型换成其他名字
关于结构体:
1)
在c中,不能直接用结构体名称直接定义变量,要加上struct才能定义
在c++中,可以直接用结构体名称直接定义变量,如下图:
2)
在定义结构体变量的前面加上typedef,这时候变量名就不是指结构体的变量了,而是结构体的别名了,这时候GYStud就可以用来定义变量了,如下图:
注意:
1)
在定义结构体变量时,变量名是可以与结构体名称相同的,因为结构体不是关键字
所以假如用typedef定义结构体的别名与结构体相同后,此时就可以用这个与结构体相同的名称直接定义变量了。
所以在定义结构体时,就可以如下图定义:
这样就可以直接用与结构体相同的名称直接定义变量了。
2)
要注意区分宏与typedef的不同:
宏,是在预编译时进行的替换原则。
typedef,是在编译时进行的类型命名的识别原则。
SINT a,b; 是和 int *a,b等价的,所以a是整型指针变量,b是整型变量。
PINT a,b;是和 int *a,*b;(即int *a,int *b;) 等价的,所以a,b都是整型指针变量。