jianhong_wu 发表于 2016-5-2 14:20:53

宏定义宏替换的“#define”后面的数据或公式加括号和不加括号有区别吗?已解答。

本帖最后由 jianhong_wu 于 2016-5-2 14:23 编辑

老赵-西安:
#define TI_LMP91000_MODECN_REG_VALUE                   (0x03)

#define TI_LMP91000_MODECN_REG_VALUE                   0x03
请问这两个有什么差别?

★坚鸿-深圳:
严格来说,是不一样的。尤其是含有公式的多个数这种情况,必须加括号,否则在某种情况下会出现意想不到的结果。因为#define就是在编译前先把构成完整的单词直接文本替换,再编译。跟word办公软件的“查找”“替换”功能是类似的。
所以加括号是最踏实最保险的。当然,如果是单个数就无所谓,但是还是建议养成加括号的习惯。
加括号的,文本替换过去后就是带括号的。
不加括号的,文本替换过去后就是不带括号的。
所以是有区别的,尤其是在运算公式里的程序。

页: [1]
查看完整版本: 宏定义宏替换的“#define”后面的数据或公式加括号和不加括号有区别吗?已解答。