宏定义和函数的使用区别
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++