#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
所以,在宏定义中,一定要注意这个问题。