包含 C 库时,何时应将包含包装在"外部"C""中
When should you wrap include in `extern "C"` when including a C Library
我知道,当您在c++
项目中包含c
标头时,必须用extern "C"
包装它,因为c++
和c
有两种不同的识别函数的方法。c
将使用名称来标识函数,而c++
必须使用名称和参数来满足函数重载。
我不明白的是,为什么有c
标头不需要像windows.h
一样封装在extern "C"
中??
通常,在extern "C"
中封装C标头不是一个好主意。标头可能包含其他在执行此操作时中断的文件。设计在C++中使用的C头将适当地处理extern "C"
,而无需执行任何操作。典型代码:
#ifndef MY_HEADER_INCLUDE_GUARD
#define MY_HEADER_INCLUDE_GUARD
#ifdef __cplusplus
extern "C" {
#endif
/* C callable stuff goes here */
#ifdef __cplusplus
}
#endif
#endif /* MY_HEADER_INCLUDE_GUARD */
相关文章:
- 如何将外部代码包含在虚幻引擎4 C++项目中
- 如何在源代码中包含外部库的头文件?
- 在cpack输出中包含外部库
- 删除外部包含代码库中的删除
- CLion 不索引任何外部包含路径
- 通过 CMake 将外部库包含在 CLion 项目中
- Visual C :如何找到哪个标准库包含缺失的外部符号
- 我们是否应该在项目中包含的所有文件中声明外部变量
- 如何包含具有多个 dll/dylib 的外部(共享)库
- 如何使用 CMAKE 在 C++ 中包含外部库
- 有没有一种很好的跨平台方法可以使用CMake包含外部C++库
- CMake:包含外部项目的错误
- 包含外部库时出现C++多重定义错误
- 在 AIR 本机扩展中包含外部 DLL
- 如何在 QT 项目中包含外部库
- 如何在C++中包含外部库
- 在cmakelists.txt文件中包含外部库
- 如何包含外部库
- 在.lib项目中包含外部依赖项
- 不能使用 Cmake 在另一个标头中包含外部库