gpt4 book ai didi

c++ - 链接到 C++ 库时在 C 中使用 setjmp 和 longjmp

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:53 24 4
gpt4 key购买 nike

我想在 C 程序中使用 setjmp 和 longjmp,该程序链接到用 C++ 实现的库(但具有 C API)。

C++ 代码确实进行动态内存分配并通过 API 传递指针,但只要代码的 C 端正确管理那些(不透明的)对象,使用 longjmp 时就不应该出现任何困惑,对吧?

我知道在 C++ 代码中使用这些函数不安全,但在链接到 C++ 代码的 C 代码中应该安全吗?

最佳答案

您从 C 代码调用 C++ 函数这一事实并不会使 setjmp 和 longjmp 比以往更不安全。

重要的是,如果您的库分配资源,您必须准备好恢复代码,以确保在调用 longjmp 后正确释放这些资源。虽然这对于您自己的分配来说可能很容易,但对于 C++ 库来说可能很难或不可能,具体取决于您使用的 C 接口(interface)的结构。

关于c++ - 链接到 C++ 库时在 C 中使用 setjmp 和 longjmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7252455/

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