关于宏
#define CONCAT(x,y) x##y
CONCAT(a,CONCAT(b,c))扩展为aCONCAT(b,c)而导致出错
解决方案是定义第二个宏
#define CONCAT2(x,y) CONCAT(x,y)
CONCAT2(a,CONCAT2(b,c))扩展为想要的结果abc
我的问题是详细的具体步骤是什么
最好用以下格式解释
#define plus(x,y) add(y,x)
#define add(x,y) ((x)+(y))
plus(plus(a,b),x)的扩展步骤
初始 plus(plus(a,b),c)
add(c,plus(a,b))
((c)+(plus(a,b)))
((c)+(add(b,a)))
最后 ((c) +(((b)+(a))))