创建别名的两种方式:
1. 使用预处理器 #define
比如#define BYTE N_BYTE ,预处理器在编译程序时,会用N_BYTE替换所有的BYTE,从而使N_BYTE成为BYTE的别名。
注意:在处理复杂类型别名时,#define 不使用,比如:
#define INT_PTR int*
INT_PTR a, b;
预处理器使用时就会直接替换INT_PTR,变成int * a, b。这显然和我们预期的结果不符合。
2. 使用typedef
其通用格式为 typedef typeName aliasName;
比如: typedef int* INT_PTR;
使用INT_PTR为int*的别名,typedef处理复杂类型别名的时候就不会有#define的问题。它代表将某个类型的别名。所以处理复杂类型时选用typedef是更好或者最优的选择。
typedef不会创建新的类型,它只是为已有的类型建立一个新的名称。