无意中看到有人问关于宏定义的展开,于是上google找答案,看到了这一段论述,同时看到了另外一段论述:http://blog.csdn.net/zjplus/article/details/2309773 显然贵网站关于宏展开的步骤的论述是有问题的。 比如最后一个例子: #define x 3 #define f(a) f(x * (a)) #undef x #define x 2 #define g f #define t(a) a t(t(g)(0) + t)(1); 为什么要先展开g呢? 如果t(a)的定义是 #define t(a) #a 那按照文中描述的步骤,最终的结果应该是: ”f(2 * (0)) + t“(1) 但结果显然不应该是这样。
其实这个作者没什么底气,很多参考他根本不承认
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!