Forum: Compiler & IDEs int main (void) oder void main(void)


von Dummkopf (Gast)


Lesenswert?

Tach

Was für einen Sinn hat es, die main-Funktion mit einem Rückgabewert zu 
versehen?

int main(void) liefert einen Wert der jedoch von niemandem 
entgegengenommen wird.


Richtig?

von Ulrich (Gast)


Lesenswert?

wenn ich ein anderes Programm aufrufe und dies durchgelaufen ist, 
interessiert es mich ab und zu obs erfolgreich war. dies erkenne ich oft 
am exit-code des Programms. Von dem her ist es schon sinnvoll!!!

von Stefan Salewski (Gast)


Lesenswert?

int main(void) liefert einen Wert ans Betriebssysten zurück, meist 0 für 
Erfolg. Dieser Wert kann dann von anderen Programmen ausgewertet bzw. 
darauf reagiert werden, z.B. in Scripten.

Aber wenn man kein Betriebssstem hat, sondern nur Windows, dann kann man 
vielleicht nicht viel mit dem Rückgabewert anfangen.

von pumpkin (Gast)


Lesenswert?

stichwort "ANSI-C" wenn ich nicht irre. ich finde es sauberer, kann aber 
auf µC getrost weggelassen werden.

pumpkin

von Hans-jürgen H. (hjherbert) Benutzerseite


Lesenswert?

Also, mein avr-gcc will

int main(

sehen, sonst meldet er error: '::main' must return 'int'


von Dummkopf (Gast)


Lesenswert?

ja eben.... ich rede ja auch von µC.... und nicht von PC Programmen.

dort ist kein "höheres" Programm als die main(). Von daher ziemlich 
sinnlos.

Warum AVRStudio diesen Rückgabewert verlangt ist mir auch nicht klar.

von pumpkin (Gast)


Lesenswert?

dann defintiv ANSI-C. das ist halt 'brauch'.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

und ändert die Codegröße beim avrgcc (-Os) auch nicht.

Matthias

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hans-jürgen Herbert wrote:

> sehen, sonst meldet er error: '::main' must return 'int'

Was bei C halt nur eine Warnung ist, ist bei C++ oft ein Fehler.

von Werner B. (Gast)


Lesenswert?

> und ändert die Codegröße beim avrgcc (-Os) auch nicht.

Im Gegenteil. Mit dem return wird der Code kürzer.
Kannst du ja mal ausprobieren.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

kann ich nicht bestätigen.
1
Matthias@modframe ~
2
$ avr-gcc -v
3
Reading specs from C:/Programme/WinAVR/lib/gcc/avr/3.4.5/specs
4
Configured with: ../gcc-3.4.5/configure --prefix=/c/WinAVR --target=avr --enable-languages=c,c++ --with-dwarf2 --enable-win32-registry=WinAVR
5
Thread model: single
6
gcc version 3.4.5

Matthias

von Marco Beffa (Gast)


Lesenswert?

Manchmal läuft halt ein OS auf dem uC (besonders bei etwas gröberen 
Geschützen).. Und da ist es schon sinnvoll wenn der aufgerufene Dienst 
nach Beendigung etwas zurück gibt...wie es ja unter Windwos etc. üblich 
ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.