typedef 可以用来为一个已有的类型定义一个新名字,这个新名字和原来的类型名等价。
typedef int Integer;
上面的代码将 int 类型定义为 Integer,Integer 可以视为是 int 的别名,程序中可以用 Integer 代替 int。
typedef 还可以为结构体、联合体、枚举类型等定义新的类型名字。
在 C 语言中,一些类型名称比较复杂,如指向函数的指针,指向指针的指针等。typedef 可以用来简化这些类型名称。
typedef int (*pInt)[3];
上面的代码定义了一个指向长度为 3 的 int 数组的指针类型 pInt,使用 typedef 可以简化定义。
typedef int (*PArray)[3];
上面的代码和上面的代码等价,pInt 被 PArray 替代,使得代码更清晰、易读。
typedef 可以把一些常用的、复杂的类型名称定义在头文件中,方便程序的维护和修改。
定义类型的人只需要修改头文件,使用这个类型的人不需要关心这个类型的实现细节,从而提高程序的可维护性。
不同的编译器可能对类型所占用的字节数有不同的定义,不同的平台也可能有不同的数据类型长度。
typedef 可以使得程序对这些差异变得更加透明,从而方便跨平台移植。例如在不同的平台之间,可以将 int32_t 定义为 int,int64_t 定义为 long long。