Qual è la differenza tra stop
e exit
in Fortran?Qual è la differenza tra "stop" e "exit" in Fortran?
Entrambi possono terminare immediatamente il programma con alcune informazioni di errore.
Qual è la differenza tra stop
e exit
in Fortran?Qual è la differenza tra "stop" e "exit" in Fortran?
Entrambi possono terminare immediatamente il programma con alcune informazioni di errore.
exit
in Fortran è una dichiarazione che termina loop o completa l'esecuzione di altri costruisce. Tuttavia, la domanda riguarda chiaramente l'estensione non standard, come una funzione o subroutine, offerta da molti compilatori che è strettamente correlata alla dichiarazione stop
.
Ad esempio, gfortran offers una cosa del genere.
Poiché questo uso di exit
non è standard, è necessario fare riferimento alla documentazione di un'implementazione specifica in merito alla forma e ai relativi effetti.
L'istruzione stop
, d'altra parte, è un'istruzione Fortran standard. Questa istruzione avvia normale terminazione dell'esecuzione di un programma Fortran (e può essere confrontata con la dichiarazione error stop
che avvia errore errore).
Oltre a sapere che terminare (normalmente) l'esecuzione del programma segue una dichiarazione stop
e che esiste un codice di arresto, il modo effettivo che accade è di nuovo lasciato aperto all'implementazione. Ci sono alcune raccomandazioni (ma queste sono solo raccomandazioni) su ciò che accade. Ad esempio, in Fortran 2008 si suggerisce che
Quanto sopra è abbastanza vago in quanto in molte impostazioni i concetti di cui sopra non si applicano.
In pratica, exit
sarà simile alla funzione della libreria C di tale nome e il suo effetto sarà come stop
senza un codice di arresto (ma passando comunque lo stato specificato al sistema operativo).
In sintesi, Fortran non descrive una differenza tra stop
e exit
. L'utilizzo di exit
(per la terminazione) non è portabile e anche l'effetto di stop
non è interamente definito.
stop
è una dichiarazione fortran ma exit
è una funzione che si verifica solo per terminare il programma.
Il stop
dichiarazione sarà in uscita il suo argomento [che può anche essere una stringa] per stderr
stop 123
e restituirà uno stato zero al processo padre.
Considerando che exit
è una funzione e deve essere chiamata come qualsiasi altra. Sarà anche silenziosa (cioè nessun messaggio):
call exit(123)
e l'argomento per uscire verrà restituito al processo padre lo stato