#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
所以,在宏定义中,一定要注意这个问题。
评论 (0)
暂无评论,快来抢沙发吧!