aa887498 发表于 2018-9-13 19:24:00

#define求指教

F(3+2)不应该是2*(3+2),应该先计算括号里面的嘛?优先级不是括号最高吗?

怎么是答案8?

#include <stdio.h>
#define F(n) 2*n
main()
{
        printf("%d\n",F(3+2));
        printf("%d\n",F(3));
}

claws0n 发表于 2018-9-13 19:29:00

不是,你没有括号,所以是 2*3+2 = 8
#define F(n) 2*(n)

Charles未晞 发表于 2018-9-13 19:55:26

2*3+2
哪来的括号。。。。
是3+2又不是(3+2)

Mountain_gs 发表于 2018-9-14 00:12:07

#include<iostream>
using namespace std;

#define f(a,b) a+b
#define F(a,b) (a+b)

int main()
{
        int a = 1, b = 2, c = 3,d = 4;
        int sum = f(a, b)*f(c, d);//<==>a+b*c+d=11
        int sum2 = F(a, b)*F(c, d);// <==>(a+b)*(c+d)=21
        cout << sum<<endl;
        cout << sum2 << endl;
        system("pause");
        return 1;
}
页: [1]
查看完整版本: #define求指教