独闷闷网
标题:
宏定义宏替换的“#define”后面的数据或公式加括号和不加括号有区别吗?已解答。
[打印本页]
作者:
jianhong_wu
时间:
2016-5-2 14:20
标题:
宏定义宏替换的“#define”后面的数据或公式加括号和不加括号有区别吗?已解答。
本帖最后由 jianhong_wu 于 2016-5-2 14:23 编辑
老赵-西安:
#define TI_LMP91000_MODECN_REG_VALUE (0x03)
#define TI_LMP91000_MODECN_REG_VALUE 0x03
复制代码
请问这两个有什么差别?
★坚鸿-深圳:
严格来说,是不一样的。尤其是含有公式的多个数这种情况,必须加括号,否则在某种情况下会出现意想不到的结果。因为#define 就是在编译前先把构成完整的单词直接文本替换,再编译。跟word办公软件的“查找”“替换”功能是类似的。
所以加括号是最踏实最保险的。当然,如果是单个数就无所谓,但是还是建议养成加括号的习惯。
加括号的,文本替换过去后就是带括号的。
不加括号的,文本替换过去后就是不带括号的。
所以是有区别的,尤其是在运算公式里的程序。
欢迎光临 独闷闷网 (http://dumenmen.com/)
Powered by Discuz! X3.2