C语言类型定义 typedef

示例

根据现有类型定义新类型。它的语法与变量声明的语法相同。

/* `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