とりあえず、main の引数と戻り値をどう書くかってのは別にして、
関数を宣言するときに、引数リストを空にするのと、(void)にするのが一緒かってことなら、

C++では一緒。
(C++ では引数リストを省略すると (void) とみなされる)
C言語では最近の仕様はよく知らんけど、昔は違う意味になったはず。
(昔の仕様だと、引数リストを省略すると、 (int) と同じ意味になった)

じゃなかったっけ?