*#define RECTANGLE_AREA(a, b) (a) (b);
则RECTANGLE_AREA(c + d, e + f)将扩展成: (c + d * e + f), d与e 先运算,造成错误**
//FROM:华为C语言编程规范
这个解释有问题吧?
个人理解:
(1)上面的解释,应该是对应以下宏定义而言:
#define RECTANGLE_AREA(a, b) (a *b)。
(2) (a) *(b) 问题在下面的解释:
若g/RECTANGLE_AREA(c+d, e+f) ,将扩展成g/(c+d) *(e+f) , g与(e+f) 本应该是除法运算,结果变成了乘法运算,造成错误。
欢迎拍砖指正,谢谢!