【C语言进阶】#if的使用你需要注意的坑


1 写在前面

大家都知道C语言被广泛应用在嵌入式系统的编程中,一个很大的原因是C语言它是一种偏底层的高级语言,能够对内存、硬件等直接做高效操作;另一个原因,我想可能是还在于它的 高可移植性高可裁剪性

今天重点讲一个在可裁剪性上,C语言中用得非常广泛的 #if 语句;尽管这个语句大家一定用得非常熟练,但是往往不注意,可能你就会掉进坑里。

下面的问题,你不妨试试看。

2 问题描述

事情是这样的,有一天,我又突然被一个同事问蒙了!请看:

image-20220311150105337

啥意思,我们捋一捋。

873行的 TURNNING_OFF 值为1;(先不讨论为何OFF值是1而不是0)

874行的 POWER_GRADUALLY_TURNING 值为0;(当前配置选的是ON分支)

875-881使用 #if-#elif-#endif 做预处理判断,想达到根据值的不同实现相应代码的裁剪。

按照设计的【期望】值,当前配置下,代码逻辑应该是走4 —xxx ,即879行 (ON逻辑)

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

架构师李肯

您的鼓励是我前进的最大动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值