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型の関数が正しく使用されることが保証され、エラーが解消されます。
 
  
  
  
  
コメント