【发布时间】:2014-08-30 10:04:56
【问题描述】:
我有一个包含 boost 库的头文件,我需要将这个头文件包含在用 C 编写的源代码中。可以这样做吗?
谢谢!
【问题讨论】:
-
您需要在您的 C++ 库中实现一个包装器,以便提供可以从您的 C 代码调用的 C API。
-
@zuubs 你可以很确定 Paul R. 明白这一点,他没有错。你需要把它包起来。
我有一个包含 boost 库的头文件,我需要将这个头文件包含在用 C 编写的源代码中。可以这样做吗?
谢谢!
【问题讨论】:
【讨论】:
C++ 库的集合,可帮助您避免编写自定义代码来解决常见问题。而且您无法修改它。
使用适配器模式 (http://en.wikipedia.org/wiki/Adapter_pattern) 这篇文章已经讨论了类似的问题:Using C++ library in C code)
【讨论】:
不,您通常不能在 C 程序中包含 C++ 标头。您需要将 C 程序可能使用的声明分离到单独的标头中,并确保它们在 C++ 中具有正确的语言链接:
#ifdef __cplusplus
extern "C" {
#endif
// C-compatible declarations here
#ifdef __cplusplus
}
#endif
【讨论】: