stop
和 exit
在Fortran中有什么不同?
两者都可以立即以某些错误信息终止程序。
exit
是一条语句,用于终止循环或完成其他结构的执行。然而,这个问题显然是关于许多编译器提供的非标准扩展——函数或子程序——与stop
语句密切相关的问题。exit
是非标准的,您应该参考特定实现的文档以了解它采用的形式和产生的效果。stop
语句是标准的Fortran语句。这个语句启动Fortran程序的正常终止(可以与error stop
语句进行比较,后者启动错误终止)。stop
语句以及存在停止代码之外,实际发生的方式再次留给了实现。有一些建议(但这些只是建议)关于会发生什么。例如,在Fortran 2008中,建议:
exit
类似于C库的同名函数,其效果类似于没有停止代码的stop
(但仍将给定状态传回操作系统)。总之,Fortran没有明确区分stop
和exit
的不同之处。使用exit
(用于终止)是不可移植的,即使stop
的效果也并非完全定义。
stop
是一种Fortran语句,而exit
则是一个函数,只是恰好终止程序。
stop
语句将其参数(也可以是字符串)输出到stderr。
stop 123
并且它将向父进程返回零状态。
而exit
是一个函数,必须像其他函数一样调用。它也将保持沉默(即没有消息):
call exit(123)
而 exit 的参数将作为状态返回给父进程。