#include <stdio.h>   #define S(x) x*x void main() { int a,k=3,m=1;

a=S(k+m);

printf("%d",a);

}

第1个回答  2011-06-21
宏是在 编译之前直接替换 的,就是纯粹的字符串替换
S(k+m) 替换后就是k+m*k+m
k = 3
m=1
所以就是3+1*3+1
就是7
第2个回答  推荐于2018-04-19
a=S(k+m) = S(3+1) = 3+1*3+1 = 7
是直接替换本回答被网友采纳
第3个回答  2011-06-21
这种写法存在很大很大的问题。。。。

最好这么写
#define S(x) ((x)*(x))
第4个回答  2011-06-30
7