我正在为加速度计实现一个驱动程序,我必须在其中实现启用/禁用低功耗模式等功能。
我可以写:
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/