"C2451: 条件式の型 'void' が間違っています" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
error C2451: 条件式の型 'void' が間違っています。<ソース名>: note: void 型の式は他の型へ変換できません。

ソース(バグ有り):

#include <stdio.h>

void test_func() {   }

int main()
{
if(test_func())
printf("return true\n"); }


原因:
条件式が void で評価できません。

この例では if 文で test_func の戻り値を評価しようとしてますが、関数の戻り値が void であるため評価できません。

対処:
void 型の関数に関して、どこかコードで戻り値を評価していないか確認します。

この例では test_func は void 型で定義されていますが、if の条件式で戻り値を評価しているため、変数を返す型に修正します。


ソース(修正済み):

#include <stdio.h>

int test_func() { return 1;  }

int main()
{
if(test_func())
printf("return true\n"); }

スポンサード リンク



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