【发布时间】:2013-07-17 10:39:02
【问题描述】:
在给定的代码中,我发现了以下序列,
data = POC_P_Status, TE_OK;
我不明白那是什么意思。
数据元素是否接收第一个或第二个元素或其他内容?
更新:
我在某处读到这种行为是这样的,
如果我会这样写:
如果(数据 = POC_P_Status,TE_OK){ ... }
如果 TE_OK 为真,则 if 子句为真。
什么意思?
【问题讨论】:
-
(data = POC_P_Status), TE_OK;赋值的优先级高于逗号。 -
@BartFriederichs 优先级是您如何判断
,的第一个操作数是data = POC_P_Status而不仅仅是POC_P_Status。 -
@Bart 但是你通过优先规则确定它的第一个和第二个操作数是什么。
-
@DanielDaranas 确定 for 循环中的更新表达式获得豁免?
-
@Peter Try and see. cmets 中的
@all也没有任何意义。
标签: c comma-operator