>>97
ANSI/ISO以前のいわゆるK&R Cにはプロトタイプが存在せず、
関数は
char *foo();
のように仮引数無しで宣言された。

ANSI規格においても、後方互換性の点からこのスタイルでの
宣言が認められ、その場合は(C++のように)「引数無し」
ではなく、古いC同様に「引数は任意であり型チェックはしない」
という意味とされた。そのため、「引数無し」を明示するために
別途voidが導入された訳だ。