C++工程项目中常见的写法与解释——typedef篇

本文介绍了typedef在工程项目中的三个常见用法:1)创建类型别名,增强代码可读性,例如用RESULT代替long表示接口返回值;2)定义结构体类型别名,简化结构体声明和使用,如TEMP_STRUCT和PTEMP_STRUCT;3)实现跨平台数据类型定义,通过条件编译确保代码在不同平台上的一致性。typedef的使用有助于提高代码的可维护性和标准化。

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

typedef篇

介绍三种工程项目常用的用法
用法1、类型别名
常用于定义句柄类型、返回值类型等快捷方式类型。易于理解含义和方便的类型别名。
如,定义接口时,大量供其他人调用的接口中,返回值均为long,如果直接这样写:

long interface1();
long interface2();

固然可以,但别人作为调用者,在不知情的情况下是不知道long会返回出什么值的。此时我们可以这样定义:

typedef long RESULT;
RESULT interface1();
RESULT interface2();

就算不写文档,调用者也会很清楚的知道,他调用接口后将会得到一个RESULT值,根据预定义的RESULT值列表,就可以知道是接口调用成功了,还是失败了,或是其他状态值。
再如,定义引擎时,引擎的句柄,如果直接这样写:

void * Foo_CreateEngine();

不如这样写清晰明了,同时在之后,可以直接用,而不需要写代码的时候,每次写到这都要加一个“*”

typedef void * MHandle;
MHandle Foo_CreateEngine();
void Foo_DestroyEngine(MHandle handle);

用法2、结构体类型别名

typedef struct
{
	int a;
}TEMP_STRUCT,*PTEMP_STRUCT;

意思是定义一个新的类型TEMP_STRUCT,它是一个形如struct{int a;}的结构体,同时定义一个新的结构体指针类型*PTEMP_STRUCT,以便于之后使用。如:

TEMP_STRUCT tempStruct={0};

如:

void interface(PTEMP_STRUCT pTempStruct);

用法3、跨平台基本数据类型别名
有些数据类型只支持个中平台,所以在使用数据类型前,都会将用到的数据类型typedef重新定义一遍,代码中只用重定义的类型即可,当平台改变时,修改typedef即可。
当然也可以根据平台既定宏来控制。
如:(这是随便写的,不可做实际代码用)

#if defined(WIN32)
	typedef unsigned short MWChar;
#else
	typedef signed short MWChar;
#endif
……

MWChar mwChar;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值