"C2051: case 式は、整数型定数でなければなりません" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2051: case 式は、整数型定数でなければなりません。

ソース(バグ有り):

//switch case のサンプル
#include <stdio.h>

int main()
{
int a=1,b=1; switch(a)
{ case b:
printf("aは1です。\n");
break; default: printf("aは1ではありません。\n"); } }


原因:
case 文の式が整数定数以外が指定されています。

この例ではcase文の式に変数が指定されています。

対処:
case 文の式が整数定数を指定します。


ソース(修正済み):

//switch case のサンプル
#include <stdio.h>

int main()
{
int a=1,b=1; switch(a)
{ case 1:
printf("aは1です。\n");
break; default: printf("aは1ではありません。\n"); } }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]