yuyou517 发表于 2017-2-14 22:32:46

C语言的问题

#include<stdio.h>
#define a(x) x*2
void main()
{
        int n,m;
        n = 5;
        m = 1;
        printf("a(x)=%d\n",a(n+m));

        return 0;
}

结果为什么是7

pl_014 发表于 2017-2-15 21:27:22

a(n+m)会被展开成n+m*2,所以在写宏函数的时候要注意加上括号
#define a(x) ((x)*2)

还有一个void main不符合C/C++的新标准,现在main函数的返回值只能是int
页: [1]
查看完整版本: C语言的问题