第13.6條規定:sizeof運算()運算符的操作數不應包含任何
表達其有潛力側affects.I很茫然,以確定如何操作
副作用會影響sizeof()運算符的結果。
有人可以用這個例子解釋嗎?MISRA規則13.6解釋需要
void f(int32_t n)
{
size_t s;
s = sizeof(int32_t[n]); //Compliant
s = sizeof(int32_t[n++]); //Non Compliant
}
或者任何人都可以舉一個更容易理解的例子,並解釋一下嗎?
是的,我記得揮發性的例外。但無法得到這種副作用的全部想法。謝謝您的幫助。 –
@NishrinTrunkwala在C標準中有一個術語副作用的正式定義5.1.2.2.3「訪問一個易失對象,修改一個對象,修改一個文件或者調用一個執行任何這些操作的函數都是副作用,「 – Lundin