簡単に言えば、すべての質問の最も重要な点は、伝統と適合性です。ツールチェーン、オペレーティング システムなどは、main() と呼ばれるこのプロシージャが最初にユーザー コード空間 (プログラム) から呼び出される必要があることを認識しています...
具体的には:1)私が言ったように適合性のため。ツールチェーンとオペレーティング システムは既に main を認識しているため、宣言する必要はありません。また、exit() のような他の適合関数もあります。
2)メインがしばらく戻ったとき、オペレーティングシステムはそこから結果を返すことができます。通常、ゼロ以外はエラーを意味します。そのため、スクリプトや main() 関数などのプログラムを呼び出す他のプログラムを使用している場合、それが成功したかどうかを確認できます。
3) ゼロ以外の値を返すと、エラーを意味します。しかし実際には、その値を好きなように解釈できます。しかし、私が言ったように、OSは結果を持つことができます。
追加情報: main() は実際には、プログラムの開始時に呼び出される最初の関数 (作成した関数) ではありません。しかし、実際には、オペレーティングシステムとツールチェーンは、メインの前の他の呼び出し、環境のセットアップ、初期化などを容易にします。しかし、コードを書いているときにそれについて直接知っているわけではなく、それに対処したり考えたりする必要はまったくありません。組み込みシステムでは、通常、CPU のメイン クロック、割り込み、スタックなどをセットアップするために呼び出される非常に低レベルの関数がいくつかあります。
これが役に立ったことを願っています:)