C++为类型建⽴别名的⽅式

29 阅读1分钟
  1. 使⽤预处理器:

    #define BYTE char

    预处理器在编译程序时用char替换所有的BYTE;等价于使BYTE成为char的别名

  2. 使⽤C++(和C)的关键字typedef来创建别名:
    • 通用格式:

      typedef typeName aliasName;

    • 例如:typedef char byte;//使byte成为char的别名

    • 换句话说,如果要将aliasName作为某种类型的别名,可以声明aliasName,如同将 aliasName声明为这种类型的变量那样,然后在声明的前⾯加上关键字typedef。

    • 例如,要让byte_pointer成为char指针的别名,可将byte_pointer声明为char指针,然后在前⾯加上 typedef:

      typedef char* byte_pointer;

3.也可以使⽤#define,不过声明⼀系列变量时,这种⽅法不适⽤。
#define FLOAT_POINTER float*
FLOAT_POINTER pa,pb;
//预处理器将该声明转换为:
float* pa,pb;
  • typedef⽅法不会有这样的问题。它能够处理更复杂的类型别名,这使得与使⽤#define相 ⽐,使⽤typedef是⼀种更佳的选择—有时候,这也是唯⼀的选择。
  • 注意,typedef不会创建新类型,⽽只是为已有的类型建⽴⼀个新名称。如果将word作为 int的别名,则cout将把word类型的值视为int类型。