Einfach ausgedrückt das Wesentliche für alle Ihre Fragen ist Traditionen und Konformität. Toolchains, Betriebssysteme, etc. weiß, dass Art und Weise, dass diese Prozedur main() aufgerufen, muss zuerst werden vom Benutzer Coderaum (Programm) ...
Jetzt speziell ruft: 1) Aufgrund der Konformität als ich sagte. Sie müssen nicht deklarieren, weil Toolchains und Betriebssysteme bereits von main wissen. Es gibt auch andere Konformitätsfunktionen wie exit().
2) Wenn die Hauptsache einige Zeit zurückkommt, kann das Betriebssystem das Ergebnis zurück haben. In der Regel bedeutet Null einen Fehler. Wenn U Skripte oder andere Programme verwendet, die Ihr Programm aufrufen, z. main() -Funktion können Sie überprüfen, ob es erfolgreich war.
3) Zurückgeben etwas anderes als Null bedeutet Fehler. Aber tatsächlich können Sie diesen Wert so interpretieren, wie Sie es wollen. Aber wie gesagt, OS kann das Ergebnis haben.
Zusätzliche Informationen: main() ist eigentlich nicht die erste Funktion (Sie haben geschrieben), die aufgerufen wird, wenn Sie das Programm starten. ABER tatsächlich Betriebssysteme und Werkzeugketten erleichtern andere Anrufe vor Ihrem Haupt, um Umgebung einzurichten, die Initialisierung oder was auch immer zu tun. Aber Sie wissen es nicht direkt, wenn Sie Ihren Code schreiben, und Sie müssen sich damit nicht befassen und darüber nachdenken. In eingebetteten Systemen gibt es normalerweise einige Funktionen auf sehr niedriger Ebene, die aufgerufen werden, um den CPU-Haupttakt, Unterbrechungen, Stapel usw. einzurichten. Einige der Werkzeugketten wie IAR können tatsächlich ermöglichen, dass Sie Ihren eigenen Code ausführen, bevor main aufgerufen wird.
Hoffnung half dies :)
'main()' sogar eine eigene [Wikipedia] hat (http://en.wikipedia.org/wiki/Main_function) –
1) ist falsch - Prototyp nicht ist "a must" – aragaer
@ user2718426 Kopf hoch, 'um diese Teile, möchten wir jede Frage auf nur eine Frage zu einer Zeit halten. Ihr Beitrag klingt also wie drei Fragen. Obwohl Sie über das zweite schon viel schreiben würden, wie http://stackoverflow.com/questions/9356510/int-main-vs-void-main-in-c –