0
代碼語句看起來像下面的表達式:我不知道爲什麼QAC是產生此警告右手操作數「||」是可能的副作用
if((temp1 == ID1) || (temp2 == (C_UINT16) ID2))
{
}
。 &如何避免此警告會產生什麼副作用?
細則QAC的幫助:
如果 左手操作數的計算結果爲邏輯& &運算符的右手操作數只計算1(「真」)。邏輯||的右側操作數 如果左手操作數 的計算結果爲0(「假」)運算符僅被評估。
由於這種行爲,如果任一這些操作符的右手 操作數產生的副作用可能會出現混亂。消息 3415被生成來識別這種情況。
- 訪問的易失性對象
- 執行一遞增,遞減,分配或複合賦值 操作
- 執行I/O或
- 呼叫:當表達式發生
副作用這確實任何上述
然而QAC假定發生的副作用每當函數 調用,除非函數已特別被確定爲通過以下形式的#pragma語句不同於副作用 自由:
#pragma PRQA_NO_SIDE_EFFECTS funcname