Gibt es einen Unterschied zwischen return 0
und exit (0)
wenn sie in einer Funktion? Wenn ja, wann sollte ich return 0
oder exit (0)
in einer Funktion verwenden?Unterschied zwischen „return 0“ und „exit (0)“
Antwort
return
tritt aus der Funktion während exit
Ausfahrten aus dem Programm.
In main
Funktion Ausführung return 0;
Anweisung oder Aufruf exit(0)
Funktion die registrierten atexit
Handler aufrufen und Programmabbruch führen.
Die 'atexit'-Handler werden auch bei der Rückkehr von der Hauptstelle aufgerufen. –
@CarlNorum danke für die Korrektur, ich habe meine Antwort aktualisiert. – ouah
Ja, es gibt, da gibt es keine Aussage exit
genannt wird. Ich denke du meinst die Funktionexit
?
In diesem Fall gibt es einen großen Unterschied: Die exit
Funktion verlässt den Prozess, mit anderen Worten, das Programm wird beendet. Die return
Anweisung kehren einfach von der aktuellen Funktion zurück.
Sie sind nur ähnlich verwendet, wenn in der main
Funktion.
exit 0
ist ein Syntaxfehler in C. Sie können exit(0)
stattdessen einen Aufruf an eine Standardbibliotheksfunktion haben.
Die Funktion exit
wird das gesamte Programm beenden, um das Betriebssystem die bereitgestellte Exit-Code zurück. Die return
-Anweisung beendet stattdessen nur die aktuelle Funktion, die dem Aufrufer das angegebene Ergebnis gibt.
Sie sind die gleichen nur bei der Verwendung in main
(weil das Beenden der main
Funktion das Programm beendet).
Normalerweise wird 10 nur in Notfällen verwendet, in denen Sie das Programm beenden möchten, da es keine vernünftige Möglichkeit gibt, die Ausführung fortzusetzen. Zum Beispiel:
//
// Ensure allocation of `size` bytes (will never return
// a NULL pointer to the caller).
//
// Too good to be true? Here's the catch: in case of memory
// exhaustion the function will not return **at all** :-)
//
void *safe_malloc(int size) {
void *p = malloc(size);
if (!p) {
fprintf(stderr, "Out of memory: quitting\n");
exit(1);
}
return p;
}
In diesem Fall, wenn die Funktion a
Anrufe b
Funktion, ruft Funktion c
die my_malloc
fordert Sie das Programm auf der Stelle statt der Rückkehr in c
einen Fehlercode (zB ein NULL
Zeiger) beenden möchten wenn der Code nicht geschrieben wurde, um Zuordnungsfehler zu behandeln.
return
ist eine Aussage, die Kontrolle zurück an die anruf Funktion zurückgibt.exit
ist ein Systemaufruf, der das d.h momentan ausgeführte Programm des aktuellen Prozess beendet.
In main()
die return 0;
und exit(0);
führen die gleiche Sache.
HINWEIS: Sie müssen #include<stdlib.h>
einschließen.
- 1. exit (0) vs return 0
- 2. Gibt es einen Unterschied zwischen i == 0 und 0 == i?
- 3. über android Drawable getBounds return Rect (0, 0 - 0, 0)
- 4. NSArray Unterschied zwischen FirstObject und ObjectAtIndex: 0
- 5. C++ Unterschied zwischen 0 und 0.0
- 6. Unterschied zwischen Kardinalität "*" und "0 .. *" - UML
- 7. Pycharm Exit-Code 0
- 8. Mysql Mit sum = 0 return 0 Zeilen
- 9. Was ist der Unterschied zwischen Exit und Return?
- 10. openssl_pkey_get_public return 0
- 11. Unterschied zwischen Exit und Abmeldung
- 12. Was ist der Unterschied zwischen null, 0 und nichts?
- 13. Ansicht Tag return 0 Wert
- 14. mysql String-Konvertierung return 0
- 15. Unterschied zwischen 'return' und 'pur'
- 16. Wahl zwischen $ 0 und BASH_SOURCE
- 17. Java (0/0) und (0/0.0) Ausgabevergleich
- 18. Was ist der Unterschied zwischen FILE_ATTRIBUTE_NORMAL und 0?
- 19. Gibt es einen Unterschied zwischen BigDecimal ("0") und BigDecimal.ZERO?
- 20. Was ist der Unterschied zwischen "kill-0" und "kill -9"?
- 21. Unterschied zwischen 0 und negativem Wert für setMaxAge für Cookie
- 22. C++ Unterschied zwischen virtuell = 0; und leere Funktion
- 23. Was ist der Unterschied zwischen "{0}" und "&" in VB.NET?
- 24. Was ist der Unterschied zwischen [0] und [: 1] in Go?
- 25. Unterschied zwischen Auto, 0 und kein Z-Index?
- 26. Innerer Unterschied von if ('0') zwischen C und PHP?
- 27. Den Unterschied zwischen Collection.isEmpty() und Collection.size() == 0 verstehen?
- 28. Unterschied zwischen dem neuen Typ [0] und null - java
- 29. Hadoop: Unterschied zwischen 0 Reducer und Identity Reducer?
- 30. Wie kann ich den Unterschied zwischen false und 0 feststellen?
Ausfahrt 0? wahrscheinlich nicht kompilieren. exit (0) beendet Ihr Programm.Wahrscheinlich wollen Sie das nicht – FDinoff
Entschuldigung dafür. Ich habe die Frage bearbeitet. – haccks
Es gibt einen ähnlichen Beitrag hier http://stackoverflow.com/questions/1116493/how-to-quit-a-c-program – doctorlove