"C2052: 'double': 条件式に対する無効な型です" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2052: 'double': 条件式に対する無効な型です。

ソース(バグ有り):

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

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


原因:
case で指定している式が「整数の定数」以外が指定されています。

この例では 1.5 が指定されていますが、整数の定数でないため、コンパイルエラーとなります。

対処:
case の式には整数の定数を指定します。


ソース(修正済み):

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

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

スポンサード リンク



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