Pos*_*ubb 6 c c++ longjmp setjmp
我想在C程序中使用setjmp和longjmp,该程序链接到用C++实现的库(但有一个C API).
C++代码确实进行了动态内存分配,指针通过API传递,但只要代码的C端正确管理那些(不透明)对象,使用longjmp就不会有任何混乱,对吧?
我知道在C++代码中使用这些函数是不安全的,但它是否应该在链接到C++代码的C代码中安全?
Mig*_*uel 4
从 C 代码中调用 C++ 函数这一事实并不会使 setjmp 和 longjmp 比以往更加不安全。
重要的是,如果您的库分配资源,您必须有适当的恢复代码,以确保在调用 longjmp 后正确释放这些资源。虽然这对于您自己的分配来说可能很容易,但对于 C++ 库来说可能很困难或不可能,具体取决于您使用的 C 接口的结构。
归档时间:
14 年,3 月 前
查看次数:
743 次
最近记录: