【C言語】invalid use of void expression

C言語で「invalid use of void expression」というエラーメッセージが表示された場合、それはvoid型の式が不正に使用されているということを意味します。

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

#include <stdio.h>

void print_hello(void) {
  printf("Hello, world!\n");
}

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

この例では、void型の関数print_helloがprintf関数の引数として使用されていますが、void型の関数は値を返さないため、このような使用は不正です。このような場合、コンパイラは「invalid use of void expression」というエラーメッセージを出力します。

このような場合、void型の関数を正しく使用するようにプログラムを修正することで、このエラーは解消されます。

#include <stdio.h>

void print_hello(void) {
  printf("Hello, world!\n");
}

int main(void) {
  print_hello(); // 修正後
  return 0;
}

この例では、void型の関数をprintf関数の引数として使用するのではなく、単独で呼び出すように修正されました。これにより、void型の関数が正しく使用されることが保証され、エラーが解消されます。

コメント

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