C陷阱与缺陷 第6章 预处理器 6.4 宏并不是类型定义

    宏不是类型定义
    宏的一个常见用途是,使多个不同变量的类型可在一个地方说明: 
    #define FOOTYPE struct foo
    FOOTYPE a;
    FOOTYPE b, c;
    这样,编程人员只需在程序中改动一行代码,即可改变a,b,c的类型,而与a,b,c在程序的什么地方声明无关。

    宏定义的这种用法有一个优点---可移植性,得到了所有C编译器的支持。
    但是,我们最好还是使用类型定义: 
    typedef struct foo FOOTYPE;
    这个语句设置FOOTYPE为一个新的类型,与struct foo完全等效。 
    使用typedef的方式更通用一些。 
    #define T1 struct foo *
    typedef struct foo *T2;

    T1 a, b;
    T2 c, d;
    第一个声明被扩展为: 
    struct foo *a, b;
    第二个声明被扩展为: 
    struct foo *c, *d; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_40186813

你的能量无可限量。

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

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

打赏作者

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

抵扣说明:

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

余额充值