更多精彩内容,请见:http://www.16boke.com
by zxy,Java/C++编程交流群:168424095
(1) 含义
typedef 定义以关键字 typedef 开始,后面是数据类型和标识符。标识符或类型名并没有引入新的类型,而只是现有数据类型的同义词。
(2)目的
typedef 通常被用于以下三种目的:
• 为了隐藏特定类型的实现,强调使用类型的目的。
• 简化复杂的类型定义,使其更易理解。
• 允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。
(3)指针和 typedef
假设给出以下语句:
typedef string *pstring;
const pstring cstr;
很多人都错误的认为是:
const string *cstr;//constpstring 是一种指针,指向string 类型的 const 对象
错误的原因在于将 typedef 当做文本扩展了。声明 const pstring 时,const 修饰的是pstring的类型,这是一个指针。因此,该声明语句应该是把cstr定义为指向string 类型对象的const指针,这个定义等价于:string *const cstr;
(4)用 typedef 简化函数指针的定义
typedef bool (*cmpFcn)(conststring &, const string &);
该定义表示 cmpFcn 是一种指向函数的指针类型的名字。该指针类型为“指向返回bool类型并带有两个const string引用形参的函数的指针”。在要使用这种函数指针类型时,只需直接使用cmpFcn即可,不必每次都把整个类型声明全部写出来。
更多精彩内容,请见:http://www.16boke.com