typedef
C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字
https://blog.csdn.net/qq_29350001/article/details/53883571
https://blog.csdn.net/qq_29350001/article/details/53883571
对typedef的真正理解
https://blog.csdn.net/rabbit1125/article/details/626012
真正含义: 像声明这个变量一样 声明另外一个变量
typedef int array[2];
array num ;
num[0]= 11;
num[1] = 22 ;
其真正的含义是 :
int array[2]; ----- 声明一个变量 array ,array 是按照这种形式声明的。
typedef int array[2]; ---- 记录下 声明 array变量的的步骤和方法,来声明其他的变量。
array num; ---- 像声明变量 array 一样,声明 num 变量。
这个操作类似于 ,你自己写了一个word文档,然后设置了标题 段落等等特殊的格式,写完了一个文档。
你感觉这个文档的格式 字体等等 设置的挺好,将现在的文档,保存成为模板。下次写类似的文档,就不用重新设置一遍了。
typedef 后面必须是一个合法的 变量声明语句。
在变量声明语句前面 加上 typedef 关键字的目的是,把这种声明方式 和动作作为一个 模板,用来声明其他的变量。
typedef 和 notepad++ 中的宏操作理念类似:
把刚才的操作过程录制下来, 下一次 重复操作。
typedef 分析1:
typedef unsigned char BYTE;
BYTE abc;
首先 分开 typedef 和 unsigned char BYTE;
unsigned char BYTE; 是声明一个 变量BYTE ,该变量的类型是 unsigned char 。
BYTE abc;这句话的意思是,像声明BYTE 变量一样,声明abc变量。
声明BYTE变量的形式是:
unsigned char BYTE ;
那么声明abc 变量的形式也为:
unsigned char abc;
typedef 分析2: 声明一个指向数组的指针
typedef unsigned char BYTE[5];
BYTE abc;
abc[4] = 0 ;
首先 分开 typedef 和 unsigned char BYTE[5];
unsigned char BYTE[5]; 是声明一个 变量BYTE ,该变量的类型是 unsigned char [5]。
BYTE abc;这句话的意思是,像声明BYTE 变量一样,声明abc变量。
声明BYTE变量的形式是:
unsigned char BYTE[5] ;
那么声明abc 变量的形式也为:
unsigned char abc[5];
typedef :声明一个指向 函数的函数指针
typedef int (*func)(void) ;
func sum ;
首先 分开 typedef 和 int (*func)(void) ;
int (*func)(void) ; 是声明func变量是一个指向这种函数的组织形式的函数指针。
func sum ; //sum 也是一个指向这种组织形式的指针
sum的形式为: int(*sum)(void);
(有空补充)