预处理的作用:包含文件、宏、条件编译,
我觉得楼主的问题在宏这,预处理的宏定义中类似函数的定义是不参与运算的,简单的替换,而函数是参与运算的
如我定义一个#define sum(a,b) a+b
在函数中用sum(1,2)*sum(3,4)结果是10,因为他只是简单的把sum(1,2)换成了1+2,sum(3,4)换成了3+4,运算就成了1+2*3+4,所以。。。
而定义了函数的话
int sum(int a,int b){
return a+b;
}
同样执行sum(1,2)*sum(3,4)结果就是14了 |