最简单的例子:
#define MAX(a,b) (((a)>(b))?(a):(b))
如果写成:
#define MAX(a,b) ((a>b)?a:b)
语法上也正确,但是很容易造成隐藏的错误!
因为如果当a或者b为表达式时,宏替换后的代码就跟程序员的本意不同了!
最简单的例子: #define MAX(a,b) (((a)>(b))?(a):(b)) 如果写成: #define MAX(a,b) ((a>b)?a:b) 语法上也正确,但是很容易造成隐藏的错误! 因为如果当a或者b为表达式时,宏替换后的代码就跟程序员的本意不同了! |