gpt4 book ai didi

c++ - 如何干净地退出混合 C/C++ 的程序

转载 作者:可可西里 更新时间:2023-11-01 18:27:23 24 4
gpt4 key购买 nike

我正在将 C 程序(main() 在 C 中)与 C++ 连接。在我的代码中的某些地方,我想停止执行程序。现在我想知道,我怎样才能干净地做到这一点?

目前我调用了 std::terminate() 但更多是因为缺乏更好的想法。让我烦恼的主要事情甚至不是我没有释放内存(因为它在程序终止时无论如何都被释放了,对吧?)而是 MSVS 即时调试器弹出并且我收到一条丑陋的错误消息以不寻常的方式终止运行时。

编辑:因为这引起了混淆:在这种情况下,从 main() 返回 return 0 是不可能的。

最佳答案

如果您关心清理和调用析构函数,那么

exit(EXIT_SUCCESS); // or EXIT_FAILURE

exit之间的最佳选择, terminateabort .

  • 函数exit 调用析构函数并清理自动存储对象(在全局范围内声明的对象)。它还调用传递给 atexit 的函数。

  • 函数 abort 对异常退出很有用,不会清理任何东西。它不会调用传递给 atexit 的函数。

  • 函数 terminate 在 C 中不存在。当您遇到异常并且您无法处理它但要完成程序时,它很有用。

关于c++ - 如何干净地退出混合 C/C++ 的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com