之前愚以为乘除法define 可以不加括号,若干年后真遇上这样的错误才发现这个问题。两个简单的例子记下来。
#define mul 10*20;
#define div 30/mul;
int a=mul;
int b=div;
cout<<a<<' '<<b<<endl;
输出结果 200 60,可见乘号也是要加括号的
#define div1 60/20;
#define div2 30/div1;
int a=div1;
int b=div2;
cout<<a<<' '<<b<<endl;
输出结果 3 0,除法仍然得加括号