C6259
更新:2007 年 11 月
警告 C6259: 不可能執行到標記的程式碼: switch-expr 中的 (<運算式> & <常數>) 無法評估為 <case-label>
這項警告表示在 switch 運算式中位元 AND (&) 比較的結果所造成之不可能執行到的程式碼。符合 switch 運算式中之常數的 case 陳述式 (Statement) 是唯一可執行到的,而其他 case 陳述式則不可能執行到。
範例
下列範例程式碼會產生這項警告,因為運算式 switch(rand() & 3) 無法評估為 case 標籤 (Label) (case 4):
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
case 4:
/* Not reachable */
break;
default:
break;
}
}
若要更正這項警告,請移除不可能執行到的程式碼,或驗證用於 case 陳述式中的常數是否正確。下列程式碼會移除不可能執行到的 case 陳述式:
#include <stdlib.h>
void f()
{
switch (rand () & 3) {
case 3:
/* Reachable */
break;
default:
break;
}
}