#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));
}
不是,你没有括号,所以是 2*3+2 = 8
#define F(n) 2*(n) 2*3+2
哪来的括号。。。。
是3+2又不是(3+2) #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]