5

コンパイラ オプションを 4.0 から 4.2 に変更しました。

今、私はエラーが発生します:

jump to case label crosses initialization of 'const char* selectorName'

4.0で問題なく動作します

何か案は?

4

2 に答える 2

4

推測ですconst char*が、switch-case ステートメントの 1 つの中で変数 (おそらく ) を宣言しています。これを修正するには、そのケースを {} でラップする必要があります。

// error
case 1:
   const char* a = ... 
   break; 

// OK
case 1:{
   const char* a = ... 
}
   break; 
于 2010-05-22T21:06:09.603 に答える
1

おそらく、すべてを中括弧で囲むことなく、ケース内で変数を宣言します。

case foo:
    const char* selectorName;
    // ...
    break;

次のようにする必要があります。

case foo: {
    const char* selectorName;
    // ...
    break;
}
于 2010-05-22T21:06:09.870 に答える