我在一个嵌入式面试题集中看到了这个问题。
#define cat(x,y) x##y
将x
连接到y
。但是cat(cat(1,2),3)
没有展开,而是给出了预处理器警告。为什么?
C语言不鼓励递归宏扩展吗? 我的假设是表达式应该显示1##2##3
。我错了吗?