繁体   English   中英

关于 C++ 中的 exit() function

[英]About the exit() function in C++

getche() function 没有正确终止程序,所以我想尝试 exit(int status) function。 它在 Turbo C++ 编程语言中是如何工作的? 我无法理解相关帮助模块中的解释,我寻求更好的解释……例如,函数的参数由什么组成? 提前致谢!

不是 100% 确定你的意思。 出口 function(“int 状态”)的参数是返回给 shell 的数字。 传统上,如果您的程序成功,则该值为 0;如果程序由于某种原因失败,则该值为 >0。 function 会清理各种东西,然后退出你的程序。

出色地。 getch..之类的函数通常从键盘或标准输入中获取字符。 它们有时在这样的程序结束时使用

int main() {
    // do many stuff...
    // ...
    getch(); 
}

然后在终端 windows 关闭之前,使用 getch/getche(我不知道 e 在 turbo-c++ 中代表什么)为用户提供更改以查看程序的 output(通常发生在 Windows 中)。 请注意,在 C 和 C++ 中有一个名为getchar的便携式 function 也可以完成这项工作(另外等待输入,但不会在这里)。

但它不用于终止程序。 按下一个键后,控制继续,然后在 main 完成后,程序存在。 C++ 和最近的 C 版本插入return 0; 隐含在主 function 的最后一条语句之后(0 代表“成功”)。 这意味着您的主 function 将值0返回给操作系统。 但是,如果您明确编写返回值并将另一个值放在那里,则可以返回其他值。 该值是exit所期望的。 它终止您的程序,并将给定的值返回给操作系统。

int main() {
    // some stuff...
    exit(42);
    // other stuff (note: never reached!)
} 

该程序将向操作系统返回值 42。 通常你只return 42; 在那里,它具有相同的效果(*)。


(*) 好吧,不完全是:如果您有局部变量,则使用exit时不会调用它们的析构函数。 但是当你使用return n; . 因此,首选return n; 主要的时候可以。 exit 在除 main 之外的其他函数中调用也会终止您的程序,因此可能需要使用它,因为 return there 只会从这些特定函数返回并且根本不会终止程序。

该参数是一个 integer 状态码,它作为进程的退出状态传递回调用 shell。 退出本身应该退出进程并清理您的进程正在使用的所有打开的资源。

Exit() 的参数是一个 int,表示退出进程的原因或状态。

男孩,听起来不太好。 让我再试一次:这是一个传递回启动进程(使用 CreateProcess() 或 ShellExecute() 来启动正在退出的进程的进程)的值,或者在控制台应用程序的情况下传递给可以通过 ERRORLEVEL 访问的命令 shell。

如果您正常退出,通常设置 status = 0,另一个值(如果您想要接收它的进程可能有意义)来指示错误或问题。

该参数是一个 integer 状态码,它作为进程的退出状态传递回调用 shell。 退出本身应该退出进程并清理您的进程正在使用的所有打开的资源。

有关“退出”的更多信息 Function

"exit" function 正常终止进程,对终止进程执行定期清理。

首先,通过调用“atexit”注册的所有函数都按照注册的相反顺序执行。 然后,关闭所有流并删除临时文件,最后将控制权返回给宿主环境。

作为退出参数提供的值作为程序的返回码或退出码返回给操作系统(主机环境)。 按照惯例,返回码为零表示程序成功完成。

希望这可以消除您的疑问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM