共用方式為


C6259

警告 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;
    }
}

請參閱

參考

switch Statement (C++)

switch Statement (C)