#define A(x) x*x A(A(1+1))*2
这个形式??
这个宏函数在C/C++中无法使用吧?中间带空格,并且带递归,虽然定义没问题,可预处理无法完成这样的递归替换吧。
如果后面的是调用,这个就很简单了吧,因为宏定义没有括号,那么
#define A(x) x*x
A(A(1+1))*2
就会扩展为:
1+1*1+1*1+1*1+1*2
结果为6