<分区>
#define cat(x,y) x##y
main()
{
printf("%d",cat(cat(cat(3,3),cat(3,4)),5));
}
为什么会报错? 据我所知O/P应该是
cat(cat(3,3),cat(3,4)),5
因为连接内部宏没有扩展。为什么这没有发生?
<分区>
#define cat(x,y) x##y
main()
{
printf("%d",cat(cat(cat(3,3),cat(3,4)),5));
}
为什么会报错? 据我所知O/P应该是
cat(cat(3,3),cat(3,4)),5
因为连接内部宏没有扩展。为什么这没有发生?
最佳答案
间接调用。
#define cat_(x,y) x##y
#define cat(x,y) cat_(x,y)
关于c - 为什么这段代码会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30916004/