int main (void) oder void main (void)?

Gast #40320
Lesenswert?

Welcher Hauptfunktionstyp ist denn korrekter und wieso?
Ich frage mich an wen die Funktion main etwas zurückliefern soll, daher 
verstehe ich das int vor der Funktion nicht so recht.

Warum macht der AVR-GCC ne Warnung wenn ich die Hauptfunktion mit void 
main(void) deklariere? Ist das noch ein Relikt aus der ursprünglichen 
Verwendung vom gcc?

Danke für Eure Anworten
Gast #40321
Lesenswert?

Habe ich neulich schon mal ausführlich beschrieben.

,,Korrekter'' gibt es in der deutschen Sprache nicht. :-)
Entweder korrekt oder nicht.

Gültige Prototypen in einem hosted environment sind
int main(void);
int main(int, char **);

Bitte benutze die Suchfunktion des Forums und suche nach
»hosted environment« um Dir die Erklärung durchzulesen, warum
auch ein avr-gcc gar nicht unbedingt der klassische Fall
von freestanding environment ist, der er auf den ersten Blick
zu sein scheint...

OK, habe ich für Dich gemacht, hier:
http://www.mikrocontroller.net/forum/read-2-30878.html#30990

Kurz und gut: das "return 0;" am Ende kostet Dich nix.  Wenn
Du die übliche Endlosschleife davor hast, wird es sowieso
wegoptimiert.  Bei C++ kämest Du ohnehin nicht drumrum.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren