根据现有类型定义新类型。它的语法与变量声明的语法相同。
/* `unsigned char` 定义为 Byte */ typedef unsigned char Byte; /* Integer 是用于声明由单个 int 组成的数组的类型 */ typedef int Integer[1]; /* NodeRef 是用于指向标记为“ node”的结构类型的指针的类型 */ typedef struct node *NodeRef; /* SigHandler 是传递给signal函数的函数指针类型。 */ typedef void (*SigHandler)(int);
尽管从技术上讲不是存储类,但是编译器会将其视为一个,因为如果使用了typedef关键字,则不允许其他任何存储类。
的typedef人非常重要,不应与被取代#define宏。
typedef int newType; newType *ptr; // ptr是指向'newType'类型的变量的指针,也称为int
然而,
#define int newType newType *ptr; // 即使宏完全替代了单词,也不会导致指向类型为'newType'的变量的指针,也就是int