宏定义和函数的使用区别
admin 于 2013年11月16日 发表在 C/C++开发笔记
#define命令定义的内容即为:宏定义;宏定义只是在执行过程中对其进行替换操作,自己曾在计算机等级考试中遇到同样的问题,类型于下面的实例:
#define f(x) x*x int main(void) { int i; i=f(1+1)+f(2+2); printf("%d\n",i) }
输出结果:11
重新定义:
#define f(x) (x)*(x)
输出结果:20
两个定义输出的结果并不相同,就是说:#define宏定义 和 函数return(x*x) 是不一样的,上式具体执行过程:
在(1)中:
i=1+1*1+1+2+2*2+2=11
在(2)中:
i=((1+1)*(1+1))+((2+2)*(2*2))=20
所以,在宏定义中,一定要注意这个问题。
注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。
标签:C/C++