首页 > 编程笔记 > C++笔记 阅读:41

C++ typedef的用法(附带实例)

C++ 中,使用关键字 typedef 可以给数据类型定义一个别名。语法格式如下:
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 就代表字符指针。

相关文章