我最近将一份我用C++编写并使用Boost Python包装的库转换为使用SWIG包装的C代码,以支持更多语言。我从C++切换到C是因为该库仅由一组函数组成,我还希望该库可以从C中调用(而无需使用C++编译器编译整个程序)。然而,有一件事很难移植,即非常小的一部分函数需要能够报告错误。在C++ / Boost Python中,这可以通过
throw
和异常转换来实现。在C和封装的语言方面,最优雅的方式是什么,以便让一部分函数报告错误?