Frage

    

Diese Frage bereits eine Antwort hier:

    
            
  •              Was sollte main () Rückkehr in C und C ++?                                      17 Antworten                          
  •     
    

Warum brauchen wir int main zu verwenden und void main nicht in C ++?

War es hilfreich?

Lösung

Die kurze Antwort ist, weil der C ++ Standard main() int zurückzukehren erfordert.

Wie Sie wahrscheinlich wissen, ist der Rückgabewert aus der main() Funktion wird durch die Laufzeitbibliothek als Exit-Code für das Verfahren verwendet. Unix und Win32 unterstützen das Konzept einer (kleinen) integer von einem Prozess zurückgeführt, nachdem es beendet wurde. einen Wert von main() der Rückkehr bietet eine Möglichkeit für den Programmierer diesen Wert angeben.

Andere Tipps

Die meisten Betriebssysteme Bericht zurück an den Benutzer oder den anrufenden Prozess, wenn ein Antrag erfolgreich war oder nicht. Dies ist besonders nützlich in scripting, in dem das Skript bedingt (if-then) über die Ergebnisse eines Programms verzweigen. Etwas entlang der Linien von:

// pseudo-code
screenscrape  http://mydatasource.com > results.txt
if errorlevel == 0 then
   processfile results.txt
else
   echo Screen Scraping Failed!
end if

Dieses Ergebnis Status wird über den Rückgabewert von Haupt getan.

Während einige Compiler für void main, aus Gründen der Konsistenz und Einfachheit ermöglichen, der ANSI-Standard erfordert einen einzigen Prototyp Haupt:

int main(int argc, char *argv[]);

Da in C, Argumente werden vom Anrufer, der Autor des Haupt kann Vernachlässigung zu erklären oder zu verarbeiten, um die Argumente argc und argv gereinigt. wenn die Setup-Routinen jedoch, die einen int Rückgabewert Haupt erwarten nennen, und stattdessen nicht ein finden, kann das Verhalten nicht definiert.

Kurze Antwort:

  • Der Rückgabewert der Haupt ist hilfreich für Skripting.
  • Die Vorbereitungs- und Aufräumroutinen, die Haupt Notwendigkeit eine konsistente Schnittstelle aufrufen können.

Der Hauptgrund für die Änderung

  

void main () {}

  

int main () {}

in späteren Versionen war auf benachrichtigen Fehler trat bei Programm während der Ausführung auf Betriebssystem , auf dem es läuft

return 0;

identifiziert Programm erfolgreich ausgeführt, wenn eine Anzahl eher dann 0 zurückgegeben, dass bedeutet, dass einige Fehler aufgetreten ist, die ist Fehlercode , die durch Haupt zurückgegeben. wenn Sie mit auf Codeblock IDE sieht in Buildprotokoll, wenn Hauptrückholfeder 0 es normalerweise angezeigt

Process terminated with status 0

es sonst Statuscode in rot angezeigt werden, was bedeutet, ein Fehler aufgetreten

Aus Wikipedia:

  

Der Wert von der Hauptfunktion zurückgegeben wird, den Exit-Status des Prozesses, wenn die C-Norm nur bestimmte Bedeutung zu zwei Werten zuschreibt: EXIT_SUCCESS (traditionell Null) und EXIT_FAILURE. Die Bedeutung der anderen möglichen Rückgabewerte ist die Implementierung definiert.

Wie in C, da der Prozess dem Betriebssystem einen Exit-Code geben.

Sie können entweder

int main (int argc, char ** argv)
{
  return (0);
}

oder

int main (int argc, char ** argv)
{
  exit (0);
}

Dies ist zumindest in C89 IIRC.

Da int die Rückkehr ist ein Programm, kann das Betriebssystem zurück.

Sie können diesen Wert abfragen, um zu überprüfen, ob Betrieb succesfull wird.

Das war sehr hilfreich, wenn Commandline-Skripte verwenden.

Wenn wir unser Programm ausführen zu überprüfen, es läuft erfolgreich oder nicht. Also, wenn es 0 zurück, das heißt, es ist wahr und lief erfolgreich, wenn er zurück 1 dann ist es nicht erfolgreich ausgeführt und dieser int Wert teilt das O, wenn das Programm erfolgreich ausgeführt wird oder nicht

Vielleicht, weil es Sinn macht, mit einem Statuscode von der main() Methode sauber zu verlassen. In Java müssen wir dies mit System.exit() emulieren, die die anmutigen nicht alles.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top