Was ist der Unterschied zwischen "stop" und "beenden" in Fortran?
Was ist der Unterschied zwischen stop
und exit
in Fortran?
Beide beenden das Programm sofort mit einem Fehler-Informationen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
exit
in Fortran ist eine Aussage, die beendet loops oder Ausführung der anderen Konstrukte. Doch die Frage ist eindeutig über die nicht-standard-Erweiterung, als eine Funktion oder Unterroutine von vielen angeboten Compiler, welche eng mit derstop
- Anweisung.Beispielsweise gfortran bietet so eine Sache.
Als das verwenden von
exit
ist nicht-standard-Sie sollen sich in einer bestimmten Implementierung ist die Dokumentation, in welcher form dies dauert und welche Auswirkungen es hat.Den
stop
Anweisung, auf der anderen Seite, ist ein standard-Fortran-Anweisung. Diese Erklärung initiiert normalen Beendigung der Ausführung eines Fortran-Programm (und ein Vergleich mit dererror stop
Erklärung, die initiiert Fehler Kündigung).Andere als zu wissen, dass die Beendigung (normalerweise) die Ausführung des Programms folgt eine
stop
- Anweisung, und es ist eine stop-code, der tatsächliche Weg, die passiert sind wieder offen gelassen, um die Umsetzung. Es gibt einige Empfehlungen (diese sind aber nur Empfehlungen), was passiert. Zum Beispiel, in Fortran 2008 es wird vorgeschlagen, dassOben ist ziemlich vage, in vielen Einstellungen die oben genannten Konzepte nicht anwenden.
In der Regel in der Praxis
exit
wird ähnlich der C-Bibliothek die Funktion, die Namen und die Wirkung wiestop
ohne stop-code (aber immer noch vorbei an den angegebenen status zurück auf das OS).In der Zusammenfassung, Fortran beschreibt nicht einen Unterschied zwischen
stop
undexit
. Verwendung vonexit
(für die Kündigung) ist nicht tragbar und sogar die Wirkung vonstop
ist nicht ganz definiert.stop
ist eine fortran-Anweisung aberexit
ist eine Funktion, die nur passiert, um das Programm zu beenden.Den
stop
- Anweisung wird die Ausgabe der Argumente [das kann auch ein string sein], um stderrund wird es wieder ein null-status an den Elternprozess.
In der Erwägung, dass
exit
ist eine Funktion und muss aufgerufen werden, wie jeder andere. Es wird auch sehr leise sein (also keine Nachricht):und das argument, um zu beenden zurück zum übergeordneten Prozess als status