重大問題
C2H 編譯器會同時評估兩種邏輯操作
( &&
, ||
) 與條件 ( ?:
)
運營商。這與預期中的美國國家標準不同
從左至右評估操作程式的 Institute (ANSI) C 行為,
此外,也不再需要進行不必要的操作。
例如,在表達中 (i-- && j--)
,
如果值為 i
零,則 ANSI C 不進行評估
右側 (RHS) 表情, j
並非
除損。相比之下,C2H 編譯器會評估兩面,
除損 j
。
下清單達方式可能是其他範例 受此問題影響:
if (i-- || j )
...;
a = ((cond == 1)? i : j );
使用其營運商具備的邏輯與條件作業
無側面效果。具有側面效果的作業包括前後
增量與除損作業 (
, --
),
記憶體操作 ( *
,, []
., ->
),
和功能通話。