当前位置:网站首页>C陷阱与缺陷 第6章 预处理器 6.4 宏并不是类型定义
C陷阱与缺陷 第6章 预处理器 6.4 宏并不是类型定义
2022-07-30 17:10:00 【weixin_客子光阴】
宏不是类型定义
宏的一个常见用途是,使多个不同变量的类型可在一个地方说明:
#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;
边栏推荐
- KDD‘21推荐系统离散特征表征无embedding table Learning to Embed Categorical Features without Embedding Tables for
- 中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
- Test Management and Specification
- MySQL详细学习教程(建议收藏)
- crontab报错,但本地执行正常
- 华为云数据治理生产线DataArts,让“数据'慧'说话”
- 腾讯专家献上技术干货,带你一览腾讯广告召回系统的演进
- HUAWEI CLOUD data governance production line DataArts, let "data 'wisdom' speak"
- (18)[系统调用]追踪系统调用(服务表)
- Promise entry to proficient (1.5w word detailed explanation)
猜你喜欢
随机推荐
Graph Attention Mechanism
MySQL详细学习教程(建议收藏)
论文阅读之《DeepIlluminance: Contextual IlluminanceEstimation via Deep Neural Networks》
leetcode:1488. 避免洪水泛滥【二分 + 贪心】
592. Fraction Addition and Subtraction
第六章:决胜秋招
FP6606ACAW4 TQFN-20L (3mmx3mm) USB双端口充电控制器 百盛电子代理
[MRCTF2020]Ezaudit
matlab simulink锂离子电池智能充电策略研究
万华化学精细化工创新产品大会
No qualifying bean of type问题解决
全职做自媒体靠谱吗?
(18)[系统调用]追踪系统调用(服务表)
华为云数据治理生产线DataArts,让“数据‘慧’说话”
Lotus explodes the block failed
华为云数据治理生产线DataArts,让“数据'慧'说话”
FP6606CMP5 CPC-16L USB类型-C和PD充电控制器 百盛电子代理商
592. Fraction Addition and Subtraction
数据库的三大范式
基于模糊PID的液压舵机伺服系统


![有效的括号字符串[贪心练习]](/img/1c/5cefb53bc4aba54dd79b0cc9b09b0d.png)
![(17)[系统调用]追踪系统调用(0环)](/img/d4/aa48745ac918ebfc45c07b587fa86f.png)





![[MRCTF2020]Ezaudit](/img/80/d4656abdff20703591ffdc3f5a5ebc.png)