gpt4 book ai didi

c - 如何理解宏定义不变

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:51 24 4
gpt4 key购买 nike

其实我有一个连续有宏的代码

我在这里想知道的是它们是如何处理代码的,因为我想通过看到下面的结果来编写自己的预处理器,我真的很惊讶

#define int char     //macro1
#define char float //macro2
#define float int //macro3
main()
{
int x;
char y;
float z;
}

我期望预处理后文件中的代码是所有三个变量 x,y,z as int,int,int

但(对我来说)令人惊讶的是类型没有改变,为什么这样呢?谁能详细解释一下宏在预处理过程中是如何发挥作用的

最佳答案

宏展开一直持续到展开完成,宏不能递归展开。您定义的每个宏都会扩展为另一个宏,但当扩展变为递归时停止,这意味着类型保持不变。

关于c - 如何理解宏定义不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11304952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com