关键问题
C2H 编译器始终评估逻辑的两个点
( &&
, ||
和条件 ( ?:
)
运营商。这与预期中的美国国家标准不同
Institute (ANSI) C 行为,在这种行为中,对比评估位置,从左到右,
并且不再需要取消设置。
例如,在表情中 (i-- && j--)
,
如果其值 i
为零,则 ANSI C 不评估
右侧 (RHS) 的表情, j
与不
分离。相比之下,C2H 编译器对两方面进行评估,
分离 j
。
以下表情可能是其他示例 受此问题影响:
if (i-- || j )
...;
a = ((cond == 1)? i : j );
使用操作员具有的逻辑和条件操作
无附带附带效果。具有附带效果的操作包括预处理和后期操作
增量和离散运算 (
, --
内存操作 *
[]
(, ., ->
),
和函数调用。