如何使用宏?
How to use macros?
为什么答案是a=71?为什么在 运行 这个程序的最后答案不是根据:m1(3,2,1)=7 ....a=m2(7,21,14)=7*21 +14
#define m1(a,b,c) a*b+c
#define m2(x) m1( (x), (x*3), (x*2))
int main()
{
int a;
a=m2(m1(3,2,1));
return 0;
}
如果你用 -E
标志编译(只运行预处理器,你会得到:
int main()
{
int a;
a=(3*2 +1)*(3*2 +1*3)+(3*2 +1*2);
return 0;
}
为什么答案是a=71?为什么在 运行 这个程序的最后答案不是根据:m1(3,2,1)=7 ....a=m2(7,21,14)=7*21 +14
#define m1(a,b,c) a*b+c
#define m2(x) m1( (x), (x*3), (x*2))
int main()
{
int a;
a=m2(m1(3,2,1));
return 0;
}
如果你用 -E
标志编译(只运行预处理器,你会得到:
int main()
{
int a;
a=(3*2 +1)*(3*2 +1*3)+(3*2 +1*2);
return 0;
}