实际上,我有一个连续的宏代码
我想知道的是它们是如何在代码上工作的,因为我想通过看到下面的结果来编写自己的预处理器

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

在预处理之后,我希望文件中的代码都是三个变量x,y,z作为int,int,int
但奇怪的是(对我来说)这些类型是不变的为什么?有谁能详细解释一下宏在预处理过程中是如何运行的吗

最佳答案

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

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

10-11 23:19
查看更多