0941デフォルトの名無しさん (ワッチョイ 559f-0GSP)
2017/10/25(水) 01:31:11.21ID:a9TiLHl10同じなんだけどコンパイル時の引数チェックをしなくなる。
int func(void) の関数に対して func(123) みたいにして呼ぶとコンパイルエラーだが
int func() の関数に対して func(123) で呼び出す記述があってもエラーにならない。
なんでこうなっているのかというと、昔のCにはvoidがなくて引数なしの関数は
int func() のように書くしか方法がなく、尚且つ昔のC言語は引数のチェックを
していなかったため。つまり過去のC言語ソースをコンパイルできるようにする
ためにこのような記述が残されている。今となっては余程の事がない限りこんな
書き方はしない方が良い。バグの元だ。