C++ typedef的用法(附带实例)
C++ 中,使用关键字 typedef 可以给数据类型定义一个别名。语法格式如下:
例如,下面的代码为 int 类型起了个别名 flag,后续就可以用 flag 定义 int 类型的数据:
构造数据类型或类在声明时,也可以使用 typedef 定义别名。例如,下面代码中声明的 asdfghj 结构体拥有 myStruct 和 StructA 两个别名:
什么情况下需要使用 typedef 取别名呢?主要是以下两种情况:
1) 代替复杂、不方便书写和记忆的基本类型名称,如函数指针 int (*)(int i):
2) 使用其他人开发的类型时,使其类型名符合自己的编码习惯(或规范)。例如,使用自定义数据类型打印“C语言中文网”,具体代码如下:
typedef 原类型名 新类型名
例如,下面的代码为 int 类型起了个别名 flag,后续就可以用 flag 定义 int 类型的数据:
typedef int flag; // 定义 flag 为 int 数据类型的别名 flag a; // 使用 flag 定义整型变量 a
构造数据类型或类在声明时,也可以使用 typedef 定义别名。例如,下面代码中声明的 asdfghj 结构体拥有 myStruct 和 StructA 两个别名:
typedef struct asdfghj { 成员列表 } myStruct, StructA;typedef 关键字的作用域范围是别名声明所在的区域(包含名称空间)。使用 typedef 定义的新数据类型的大小同原数据类型一样。
什么情况下需要使用 typedef 取别名呢?主要是以下两种情况:
1) 代替复杂、不方便书写和记忆的基本类型名称,如函数指针 int (*)(int i):
typedef int (*)pFun; // 定义 pFun 为函数指针 int (*)(int i) 的别名
2) 使用其他人开发的类型时,使其类型名符合自己的编码习惯(或规范)。例如,使用自定义数据类型打印“C语言中文网”,具体代码如下:
#include <iostream> using namespace std; typedef char *CString; int main() { CString str; char temp[] = "C语言中文网"; str = temp; cout << str << endl; }程序运行结果为:
C语言中文网
程序将字符指针重命名为 CString,CString 就代表字符指针。