typedef用法详解

更多精彩内容,请见: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


你可能感兴趣的:(typedef用法详解)