独闷闷网

 找回密码
 立即注册
搜索
查看: 2970|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
发表于 2016-5-2 14:20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

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

  2. #define TI_LMP91000_MODECN_REG_VALUE                   0x03
复制代码

请问这两个有什么差别?

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

乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-11-29 16:33 , Processed in 0.152928 second(s), 18 queries .

快速回复 返回顶部 返回列表