#include<stdio.h> #define MA(x) x*(x-1) void main() { int a=1,b=2; printf(“%d\n”,MA(1+a+b)); }

日期:2012-09-25 09:58:46 人气:1

#include<stdio.h> #define MA(x) x*(x-1) void main() { int a=1,b=2; printf(“%d\n”,MA(1+a+b)); }

8,MA(1+a+b) =1+a+b*(1+a+b-1)= 1+1+2*(1+1+2-1)=8 上面的宏定义没有加括号,如果加括号定义成下面这样 #define MA(x) (x)*(x-1) 就会是12,MA(1+a+b)=(1+a+b)*((1+a+b)-1) = (1+1+2)*((1+1+2)-1)=4*3=12
    A+
热门评论