类型别名typedef
C++在为类型建立别名的方式有两种。
- 使用预处理器
#define A char
这样,预处理器将在编译程序时用char替换所有的A,从而使A称为char的别名。 - 使用关键字typedef
typedef char B;//通用格式:typedef typeName aliasName;
例如,要让B_pointer成为char指针的别名,
typedef char *B_pointer;
需要注意的是:
我也可以用
#define A_pointer char *
但两种方式是有区别的。
A_pointer p1,p2等效于char * p1,p2。
也就是说A_pointer同时声明多个变量时,后面的变量成为了char类型。
但采用第二种方法定义的别名不会出现这种问题。因此,typedef方法能够处理更复杂的类型别名,它是更好的选择——有时候也是唯一的选择。