int main () und void main () [C++]

Status
Für weitere Antworten geschlossen.
T

TTBoutz

Aktives Mitglied
Thread Starter
Dabei seit
14.11.2007
Beiträge
121
Reaktionspunkte
0
Hi Jungs,
nach nem kurzen Nachforschen meinerseits, hab ich ich jetzt entschlossen euch zu befragen. Is einfach deutlich einfacher ;)
Also:
Kann mir jemand den genauen Unterschied von int main() und void main() erklären?

Wär ganz nützlich zu wissen für den Theorieteil von meiner Informatikprüfung im Februar.
Programmieren in C++ is kein Ding, aber da gibts eben noch n paar Dinge die ich für den Theorieteil wissen sollte...
 
den genauen unterschied?
das ist einfach ;)

bei dem einen steht vorne "int", beim anderen "void".

zum thema:

hmm mit void main() liefert die funktion keinen wert zurück, oder irre ich mich?

sicher bin ich mir nicht - c++ hatte ich damals in der ausbildung, und das ist bei mir jetzt schon einige monate her...

edit: aber nach genauem nachdenken würde ich sagen es ist ein unterschiedlicher rückgabewert. bzw der rückgabewert kann bei int ein integer wert sein und bei void halt ein ääääh...void??? (eventuell nur 0?)

hach ich weiss es nicht.

edit2: huch soviele posts, die eben noch nicht da waren... juhuu ich bin doch kein nichtsnutz!
 
Zuletzt bearbeitet:
int main() gibt einen integer wert zurück (den result oder exit code),
void main() nichts...
 
  • Gefällt mir
Reaktionen: tocotronaut
int main: main Funktion gibt einen int-Wert als Rückgabe
void main: keine Rückgabe
 
  • Gefällt mir
Reaktionen: tocotronaut
int main()
- integer wird zurück geliefert

void main()
- nix wird zurück geliefert - laut standard IMHO böse...
 
  • Gefällt mir
Reaktionen: tocotronaut
Mann sollte vieleicht noch anmerken das void main() in C++ nicht
erlaubt ist.
 
ok. soviel hab ich mir auch schon in meinem manchmal kranken Hirn zusammengebastelt.
naja schlechter stil oder "böse" hab ich auch gelesen... aber dann hab ich viele artikel gesehen, wo stand, dass es mittlerweile Norm sei.

dann sollte ich ja aber eigentlich bei int main() am ende ein return mit ner integer schreiben... geht aber auch ohne... bzw welchen wert sollte ich da dann benutzen??? :)
 
Einige Compiler lassen es dennoch zu.
g++ aus den Developertools zu Tiger jedoch nicht.

Edit:
nach erfolgreichem Ablauf sollte ein Programm (bzw. dessen main Funktion) eine 0 zurückgeben.
Alles andere wird von vielen Betriebssystemen als Fehler im Ablauf interpretiert.
 
bzw welchen wert sollte ich da dann benutzen???

Prinzipiell egal, du kannst jedoch durch verschiedene Zahlen (Return 1 / Retrun 0 etc) feststellen WO das programm aufgehoert hat
 
dann sollte ich ja aber eigentlich bei int main() am ende ein return mit ner integer schreiben... geht aber auch ohne... bzw welchen wert sollte ich da dann benutzen??? :)

0 wenn alles ok gelaufen ist,
irgendeinen anderen wert >0 bei einem fehler...

gibt auch bestimmt irgendwo eine liste, mit zahlen und gebräuchlichen werten...
 
Ich glaube, void main (void) war nach Kernighan & Ritchie noch erlaubt, aber verursacht eine Warnung in jedem C Standard seit C89 (ANSI)

Alex

EDIT: EXIT_SUCCESS und EXIT_FAILURE sind die üblichen Rückgabewerte in C

Code:
#define EXIT_FAILURE    1
#define EXIT_SUCCESS    0
in stdlib.h
 
Zuletzt bearbeitet:
Eigentlich könnte ich hier auch meinen Senf dazugeben. Nach kurzem Nachdenken hab ich mich jetzt entschlossen es zu lassen. Is einfach deutlich einfacher :)

ok, alles klar, das war von allem auf jeden Fall das hilfreichste!!


Vielen Dank soweit. Ich fass noch kurz zusammen:
int main () schreiben und am Ende der main n return EXIT_SUCCES; und fertig!! stimmt das soweit?
 
int main () schreiben und am Ende der main n return EXIT_SUCCES; und fertig!! stimmt das soweit?

Im Prinzip, ja. Aber

Code:
int main (int argc, const char ** argv)
ist besser.

Alex
 
die Unsitte mit dem void main() stammt IMHO von Borland.
 
alles klar below *gg*
soweit klingt das ja ganz nett, aber kannst auch bitte noch zuschreiben was da was ist? ...argc?...const char... is doch n array... **==??; ;)
argv... was? is wohls Gegenteil von argc...
 
nichts für ungut TTBoutz, aber einen C++ Kurs können und wollen wir mit dem Forum hier nicht bieten! Ein bißchen Eigenleistung darf es dann auch noch sein und es gibt zahlreiche gute C/C++ Kurse online!
 
In diesem Array stehen die Parameter die du dem Programm auf der Kommandozeile mitgegeben hast.
 
alles klar below *gg*
soweit klingt das ja ganz nett, aber kannst auch bitte noch zuschreiben was da was ist? ...argc?...const char... is doch n array... **==??; ;)
argv... was? is wohls Gegenteil von argc...

Wär ganz nützlich zu wissen für den Theorieteil von meiner Informatikprüfung im Februar.
Programmieren in C++ is kein Ding, aber da gibts eben noch n paar Dinge die ich für den Theorieteil wissen sollte...

Öh, also, das mit "Programmieren in C++ ist kein Ding" glaub ich Dir jetzt irgendwie nicht. Wie sehen denn Deine "main" Funktionen aus?

Und in welcher theoretischen Prüfung wird das C main abgefragt?

Alex
 
Studium eben, nach den "Richtlinien" des Programmierens richte ich mich bisher... funktioniert einich ganz gut, bzw. es gab keine Probleme mit void main() o.ä....jedes Prog läuft wie ne 1.... aber man muss sich ja auch weiterbilden, v.a. auch in der Theorie.
Gerade im Bezug auf die Prüfung sollte man beides können.
Klar kann ich einfach n void main schreiben und mein Prog läuft dann später, allerdings funktioniets auch wenn ich weis warum bzw. was ich schreibe, und das is mir eigentlich der liebere Weg. ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten