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

我正在使用C连接C程序(main()在C中).在我的代码中的某些点,我想停止执行该程序.现在我想知道,我怎么能干净利落地做到这一点?

目前我调用std :: terminate(),但更多的是缺乏更好的想法.让我烦恼的主要问题是我没有释放内存(因为它在程序终止时已被释放,对吧?)但是MSVS即时调试器弹出,我得到一个丑陋的错误消息以不寻常的方式终止运行时.

编辑:因为这引起了混乱:在这种情况下,不能从返回0返回main().

解决方法

如果你担心清理和调用destuctors然后
exit(EXIT_SUCCESS); // or EXIT_FAILURE

exit,terminateabort之间的最佳选择.

>函数exit调用descructors并清理自动存储对象(在全局范围内声明的对象).它还调用传递给atexit的函数.>函数中止对异常退出很有用,不会清理任何东西.它不会调用传递给atexit的函数.> C中不存在函数终止.当您遇到异常并且无法处理它但完成程序时,它很有用.

相关文章

/** C+⬑ * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...