Warum ist der Standardrückgabewert von main 0 und nicht EXIT_SUCCESS?

Der ISO 1998 c ++ - Standard legt fest, dass die nicht explizite Verwendung einer return-Anweisung in der Hauptsache der Verwendung entsprichtreturn 0. Aber was ist, wenn eine Implementierung beispielsweise einen anderen Standardcode für "kein Fehler" hat?-1?

Warum nicht das Standardmakro verwenden?EXIT_SUCCESS das würde entweder durch ersetzt werden0 oder-1 oder irgendeinen anderen Wert je nach Implementierung?

C ++ scheint die Semantik des Programms zu erzwingen, was nicht die Rolle einer Sprache ist, die nur beschreiben soll, wie sich das Programm verhält. Im Übrigen ist die Situation für den Rückgabewert "error" anders: onlyEXIT_FAILURE ist ein standardmäßiges "Fehler" -Terminierungsflag ohne expliziten Wert, z. B. "1".

Was sind die Gründe für diese Entscheidungen?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage