【C言語】void value not ignored as it ought to be

C言語で「void value not ignored as it ought to be」というエラーメッセージが表示された場合、それはvoid型の値が無視されるべきであるが実際には無視されていないということを意味します。

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

#include <stdio.h>

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

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

この例では、void型の関数print_helloが返す値が変数xに代入されていますが、void型の関数は値を返さないため、このような代入は不正です。このような場合、コンパイラは「void value not ignored as it ought to be」というエラーメッセージを出力します。

このような場合、void型の関数が返す値を無視するようにプログラムを修正することで、このエラーは解消されます。

#include <stdio.h>

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

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

この例では、void型の関数が返す値を無視するように修正されました。これにより、void型の関数が返す値が無視されることが保証され、エラーが解消されます。

コメント

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