typedef用法详解

本文详细介绍了C++中的typedef关键字,包括它的含义、目的和常见用途。typedef可以用于隐藏数据类型实现,简化复杂类型定义,并帮助类型在不同场景中具有明确的用途。在讲解typedef与指针的关系时,提到了一个常见的误解,即typedef后的const修饰的是指针本身。此外,还展示了typedef如何简化函数指针的定义,提供了一种更易读的语法方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值