C6319
更新:2007 年 11 月
警告 C6319: 在測試的運算式中使用逗號運算子會導致左邊的引數 (如果它沒有副作用) 被忽略
這則警告指出因在測試內容中使用逗號運算子 (,) 而導致子運算式遭到忽略。逗號運算子具有由左到右的順序關聯性 (Associativity)。而逗號運算子的結果就是所評估的最後運算式。如果逗號運算子左邊的運算式沒有副作用,編譯器可能會省略運算式產生程式碼的動作。
範例
下列程式碼將產生出這個警告:
void f()
{
int i;
int x[10];
// code
for ( i = 0; x[i] != 0, x[i] < 42; i++) // warning
{
// code
}
}
若要更正這則警告,請使用邏輯 AND 運算子,如下列程式碼所示:
void f()
{
int i;
int x[10];
// code
for ( i = 0; (x[i] != 0) && (x[i] < 42); i++)
{
// code
}
}