1.示例
#define DI_INPUT_NUM (11)
2.为什么宏定义要加括号
强烈建议宏定义要给表达式加括号,这是一种良好的编程习惯,可以避免出错!
宏定义的本质是直接替换!!!宏定义后面的表达式直接替换宏定义名字!
下面举例来说明
下面两种宏定义,产生了截然不同的结果:
#define DNUM 11+2 //宏定义方式1
#define DNUM (11+2) //宏定义方式2
在程序中使用到了宏定义DNUM,如:
int a = DI_INPUT_NUM * 3
宏定义方式1: a = 11+2 *3 = 11+6 =17
宏定义方式2: a =(11+2)3 = 133=39
两者宏定义形式产生了截然不同的结果
(宏定义的本质是直接替换!!!)
上面2中情况可以看到第二种才是宏定义的本意。
所以习惯性会加个括号,其实宏定义不管是数字或者表达式,都必须加括号,这是编程的很好习惯。
如果因为上面这些没有加括号情况导致问题,在型项目中这类问题是非常困难定位的。