【C言語】case label not within a switch statement

C言語で「case label not within a switch statement」というエラーメッセージが表示された場合、それはcaseラベルがswitch文内に存在しないということを意味します。

例えば、次のようなコードでこのエラーが発生する可能性があります。

#include <stdio.h>

int main(void) {
  int x = 1;
  case 1: // エラーが発生する行
    printf("x = %d\n", x);
  return 0;
}

この例では、caseラベルが単独で使用されていますが、switch文内に存在する必要があります。このような場合、コンパイラは「’case’ label not within a switch statement」というエラーメッセージを出力します。

このような場合、caseラベルをswitch文内に移動させるようにプログラムを修正することで、このエラーは解消されます。

#include <stdio.h>

int main(void) {
  int x = 1;
  switch (x) { // 修正後
    case 1:
      printf("x = %d\n", x);
  }
  return 0;
}

この例では、caseラベルをswitch文内に移動させることで、エラーが解消されました。これにより、caseラベルがswitch文内に存在することが保証されます。

コメント

タイトルとURLをコピーしました