我正在实现一个加速度计的驱动程序,我必须实现启用/禁用低功耗模式等功能.
我可以写:
lis2dh12_low_power_enable();
lis2dh12_low_power_disable();
Run Code Online (Sandbox Code Playgroud)
要么:
lis2dh12_low_power_change_state(boolean_t enable);
Run Code Online (Sandbox Code Playgroud)
前一种解决方案通常更具可读性,但它可能会创建额外的代码,例如在这种特定情况下:
void foo(boolean_t status) {
if (status)
lis2dh12_low_power_enable();
else
lis2dh12_low_power_disable();
}
Run Code Online (Sandbox Code Playgroud)
是否有任何理由(MISRA规则)用于实现这种典型的启用/禁用功能?
我会lis2dh12_low_power_change_state(boolean_t enable);按原样实现并将其他两个定义为围绕它的宏,例如:
#define lis2dh12_low_power_enable() lis2dh12_low_power_change_state(1)
Run Code Online (Sandbox Code Playgroud)
BTW:boolean_t是不是C.由于C99是无论是内置型_Bool或宏bool从stdbool.h.
_tPOSIX为后续类型保留了更多后缀.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |