【发布时间】:2018-12-09 00:08:16
【问题描述】:
今天在查看一些代码时,我发现了一个有趣的(不必要的?)设置变量的方法:将逻辑与添加到值。
LED_GRN = (ivLEDGrnSequence & ivLEDSlot) && 1;
我对其中的一些事件进行了更多查看,并在整个代码中找到了它们,但形式不同:
作为函数的参数:
isoAgCmdHideShow(iObjectID,( (ecu.l & sVar->mask) && 1), (uint8_t *)TxMsg.buf);
在条件句中:
if( (usbQueue.selection & USB_SELECTION_CAN_1) && 1 ) {return TRUE;}
这个额外的逻辑与实际上是否改变了代码的任何内容,还是只是多余的?我尝试在网上搜索这个,但我找到的最接近答案的是Short-Circuit Evaluation,这似乎不适用于这些情况,因为短路 1 是没有用的。
简而言之,逻辑与1对变量声明有什么作用?
【问题讨论】:
标签: c