《c程序设计语言》中的例子-宏
看书的时候,有个地方不是很明白,请各位牛人帮帮忙
"在定义 #define cat(x,y) x##y 后,宏调用cat(var,123)产生var123,但是,宏调用cat(cat(1,2),3)没有定义:#的存在限制了外部调用的变元的扩展,因此将产生字符串 cat(1,2)3 并且)3不是合法的单词,它由第一个变元的最后一个单词与第二个变元的第一个单词连接而成。如果再进行第二层的宏定义:#define xcat(x,y) cat(x,y) 那么就会得到所要的效果:xcat(xcat(1,2),3)将产生123,因为xcat自身的扩展不包含##操作符。"
不明白,宏的解释顺序是如何的,像这种嵌套的情况。
在原书第二版附录A的201页