通りすがりですが、、

・複数のソースコードからなるソフトをひとつのexeファイルにまとめることができる。
 中規模以上のソフトは通常複数のソースファイルで構成されている。
 (もしこの機能がなかったら、たとえばLINUXカーネルのソースコードは、、、、、、)
 ひとつのソフトを分割してコンパイルすることになるので、コンパイル結果を結合する
 必要がある、リンカはこの結合を行い、結合されたソフトの実行開始アドレスなどを
 exeファイル内に設定する。
 (ちなみに、単一のCソースからなるソフトでも、リンカはスタートアップ時に初期化のために
  実行されるCRTなどを、コンパイル結果に結合して実行ファイルを作成している)

・C言語(コンソールプログラム)は、int main()から実行が開始される。
 (実際にはCRT(C0X32)の中のスタートアップルーチンからmainを読んでいるのですが、、、)
 よって、mainがないとリンカさんが困ってしまう。
 Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)

そしてふりだしへ、、、