是否有可能在C++堆栈展开/异常期间执行C代码 我需要编写一个C库,它将被集成到C++代码库中。此库可以调用作为回调传递的C++代码。这些函数可能会抛出C++异常。

是否有可能在C++堆栈展开/异常期间执行C代码 我需要编写一个C库,它将被集成到C++代码库中。此库可以调用作为回调传递的C++代码。这些函数可能会抛出C++异常。,c,exception,gcc,C,Exception,Gcc,我希望确保在堆栈展开过程中运行清理代码。我可以使用“清理”属性来确保: 如果启用了-feexceptions,则在异常处理过程中发生的堆栈展开期间运行cleanup_函数 从 不幸的是,我不能使用cleanup属性。我想注册cleanup函数,以便在使用portable C编程展开堆栈期间运行 这可能吗 我想注册cleanup函数,以便在使用portable C编程展开堆栈期间运行 在便携式C中不可能。 C11标准甚至不需要任何限制,也不允许使用它。在某些情况下,没有堆栈展开。想一想优化,试试g

我希望确保在堆栈展开过程中运行清理代码。我可以使用“清理”属性来确保:

如果启用了-feexceptions,则在异常处理过程中发生的堆栈展开期间运行cleanup_函数

不幸的是,我不能使用cleanup属性。我想注册cleanup函数,以便在使用portable C编程展开堆栈期间运行

这可能吗

我想注册cleanup函数,以便在使用portable C编程展开堆栈期间运行

在便携式C中不可能。 C11标准甚至不需要任何限制,也不允许使用它。在某些情况下,没有堆栈展开。想一想优化,试试gcc-Wall-O3-S-fverbose asm,并在2020年6月发布一份近期阅读的报告,解释一些正在进行的gcc优化工作。如果你想到C++,请阅读它的C++ 11标准。 <>但是,如果你决定在2020年6月具体使用一个最近的,那么你可以考虑使用特定的BufftIn或Primasm。GCC有一章是关于它的,还有一章是关于它的

您甚至可能对编写您的文档、使用its或重用Ian Taylor的its感兴趣

在Linux上,请参阅并考虑使用.< /P>
您可以从电子邮件列表或公共邮件列表中寻求帮助。

为什么选择C?如果你写的新的图书馆-写在C++。有什么特别的原因吗?Windows还是Linux?对不起。理想情况下,两者都是.as@P______________为什么在C中?但是如果你坚持并且你有自己的理由,C++总是可以执行C代码。只需使用extern C{void your_C_function;}savedkeyword即可。根据您的原因,选项可能包括在不同进程中运行代码库以及在它们之间使用ipc。