宏是编译之前进行直接替换,所以下面这种写法容易出问题,如:
#define A(x) (x*10+1)
A(2)=21
A(1+1)=12
这样以来就容易出bug!
安全写法:
#define A(x) ((x)*10+1)
宏变量外加括号是非常有必要的,尽量不要省略
宏是编译之前进行直接替换,所以下面这种写法容易出问题,如:
#define A(x) (x*10+1)
A(2)=21
A(1+1)=12
这样以来就容易出bug!
安全写法:
#define A(x) ((x)*10+1)
宏变量外加括号是非常有必要的,尽量不要省略