typedef
typedef是在C和C++编程语言中一个关键字。它用来对一个资料类型起一个新名字。目的是为了使源代码更易于阅读和理解。在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中1。
基本信息
- 中文名
声明类型
- 外文名
typedef
- 性质
声明定义
- 存储
存储类的关键字
- 差别
与宏定义有些差异
基本简介
typedef声明,简称typedef,为现有类型创建一个新的名字,或称为类型别名,在结构体定义,还有一些数组等地方都大量的用到。
它有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法 。使用typedef可编写出更加美观和可读的代码。所谓美观,意指typedef能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性以及未来的可维护性。本文下面将竭尽全力来揭示typedef强大功能以及如何避免一些常见的使用陷阱。
用法总结
如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法?
使用typedef为现有类型创建同义字,定义易于记忆的类型名
typedef使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于“typedef”关键字右边。例如:2
typedef int size;
此声明定义了一个int的同义字,名字为size。注意typedef并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要int的上下文中使用size:
void measure(size * psz);
size array;
size len = file.getlength();
std::vector<size> vs;
typedef 还可以掩饰复合类型,如指针和数组。
例如,你不用像下面这样重复定义有 81 个字符元素的数组:
char line;
char text;
定义一个 typedef,每当要用到相同类型和大小的数组时,可以这样: