sách gpt4 ăn đã đi

c - 使用 if (!!(expr)) 而不是 if (expr)

In lại 作者:太空狗 更新时间:2023-10-29 16:16:29 25 4
mua khóa gpt4 giày nike

在阅读德州仪器为其 SensorTag 提供的示例代码时我发现了以下代码段。

void SensorTagIO_processCharChangeEvt(uint8_t paramID) { 
...

if (!!(ioValue & IO_DATA_LED1)) {
PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_ON);
} khác {
PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_OFF);
}

if (!!(ioValue & IO_DATA_LED2)) {
PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_ON);
} khác {
PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_OFF);
}

if (!!((ioValue & IO_DATA_BUZZER))) {
Clock_start(buzzClockHandle);
}
...
}

声明是这样的(在同一个文件中)。

#define IO_DATA_LED1 0x01
static uint8_t ioValue;

if (!!(ioValue & IO_DATA_LED1)) 是否比 if (ioValue & IO_DATA_LED1) 有任何优势?

câu trả lời hay nhất

两次应用逻辑非 (!) 运算符的目的是将值规范化为 0 或 1。在 if 语句的控制表达式中,这没有任何区别. if 语句只关心值是零还是非零,小小的 !! 舞蹈完全没用。

一些编码风格指南可能会强制执行这种舞蹈,这可能就是您发布的 TI 代码这样做的原因。不过,我还没有看到这样做。

关于c - 使用 if (!!(expr)) 而不是 if (expr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523023/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress