gizno82 hat geschrieben:Die 0 ist doch der Rückgabewert der Main Funktion und meldet dem Betriebssystem dass das Programm erfolgreich beendet wurde.
ist das korrekt ?
Ist korrekt.
gizno82 hat geschrieben:
Es gibt auch c compiler die so was hier unterstützen: "main () ..."
Was zwar funktionieren mag, aber kein schöner Stil ist.
ist die zweite variante überhaupt standart konform ?
Seit warum kommt die main Fuktion ohne Rückgabewert aus ?
Der Standard wird im Deutsch-Standard mit 'd' geschrieben und der C-Standard ist an der Stelle nicht unbedingt logisch.
main() {} ist alter Kerningham-Ritchie-Stil...
Der Standard geht da auf den alten Stil teilweise(!) noch ein.
main() muss int zurückgeben, das entspricht neben "int main()" aber in C eben auch "main()" und man darf "return rc;" weglassen, dann wird 0 zurückgegeben.
Das ist eine Ausnahme im Standard und halt eben eigentlich unlogisch.
gizno82 hat geschrieben:Es geht darum, dass jemand ein c - skript geschrieben hat und zwar mit der zweiten main version, diese Person möchte das für den Unterricht verwenden und ich halte das für grob fahrlässig. Hab noch keinen professionellen Programmierer gesehen der die zweite main variante nutzt und so etwas sollte man auch niemand beibringen.
Liege ich richtig ist die erste variante standart und die zweite nicht was spricht gegen die zweite variante (welche ist empfehlenswert) ?
Die erste Variante ist definitiv empfehlenswert, die zweite ist aber nicht falsch, weil es hierfür eine Ausnahme im Standard gibt.
Mit über 20 Jahren Programmiererfahrung in C empfehle ich deutlich Variante mit "int main() { ... return EXIT_SUCCESS; }".
Ausnahmen sollte man möglichst meiden. Das "void" in den Klammern ist optional und wird heute in der Regel weggelassen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.