【C/C++笔记】之关键词typedef

作用:定义一种类型的别名,typedef并不是简单的宏替换

在windows编程中经常如下代码所示出现

#if defined(_WIN64)
    typedef __int64 INT_PTR, *PINT_PTR;
    typedef unsigned __int64 UINT_PTR, *PUINT_PTR;

    typedef __int64 LONG_PTR, *PLONG_PTR;
    typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;

    #define __int3264   __int64

#else
    typedef _W64 int INT_PTR, *PINT_PTR;
    typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;

    typedef _W64 long LONG_PTR, *PLONG_PTR;
    typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;

    #define __int3264   __int32

#endif

其实这个跟int  a,b;是类似的

首先,_W64 为编译选项,在64 为编译器下,而且打开了/Wp64 编译选项时,编译器会对使用了__w64 的类型进行32 位到64 位移植性的判断

故在此可以忽略不看

简化为

typedef int INT_PTR, *PUINT_PTR;

先看第一句:

typedef int INT_PTR;

意思是为int 取一个别名INT_PTR ,则INT_PTR 和int 就是一样的意思,可以这样使用

INT_PTR a;
a = 10;

第二句:

typedef int *PUINT_PTR;

就是为int * 取一个别名PUINT_PTR ,则PUINT_PTR 代表的就是int 类型的指针,使用如下:

int a = 0;
PUINT_PTR b = &a;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉逍遥_祥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值