C++中宏定义字加括号的意义

23 篇文章 2 订阅

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中情况可以看到第二种才是宏定义的本意。
所以习惯性会加个括号,其实宏定义不管是数字或者表达式,都必须加括号,这是编程的很好习惯。
如果因为上面这些没有加括号情况导致问题,在型项目中这类问题是非常困难定位的。

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做个好男人!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值