在使用带参数的宏的时候要注意:所有的参数都加括号,然后整个表达式在加上一个括号 错误示例: #include <stdio.h> #define RECTANGLE_AREA1(a, b) a * b #define RECTANGLE_AREA2(a, b) (a * b) #define RECTANGLE_AREA3(a, b) (a) * (b) int main(void) { int a = 1; int b = 2; ...
注意:使用 do{…}while(0)构造后的宏定义不会受到大括号、分号等的影响,总是会按你期望的方式调用...