gpt4 book ai didi

c - 启用/禁用功能 v.s. 的基本原理改变状态?

转载 作者:太空狗 更新时间:2023-10-29 17:19:32 25 4
gpt4 key购买 nike

我正在为加速度计实现一个驱动程序,我必须在其中实现启用/禁用低功耗模式等功能。

我可以写:

lis2dh12_low_power_enable();
lis2dh12_low_power_disable();

或:

lis2dh12_low_power_change_state(boolean_t enable);

前一种解决方案通常更具可读性,但它可能会创建额外的代码,例如在这种特定情况下:

void foo(boolean_t status) {
if (status)
lis2dh12_low_power_enable();
else
lis2dh12_low_power_disable();
}

实现这种典型的启用/禁用功能是否有任何理由(类似 MISRA 的规则)?

最佳答案

我会按原样去实现 lis2dh12_low_power_change_state(boolean_t enable); 并将其他两个定义为它周围的宏,例如:

#define lis2dh12_low_power_enable() lis2dh12_low_power_change_state(1)

顺便说一句:boolean_t 不是 C。自 C99 以来,它要么是内置类型 _Bool,要么是来自 的宏 bool标准 bool .h

甚至后缀 _t 被 POSIX 保留用于 future 的类型。

关于c - 启用/禁用功能 v.s. 的基本原理改变状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45670474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com