我可以拥有一个部分用 c 编写而其他部分用 c++ 编写的项目吗? 这可能吗?
最佳答案
是的。
如果您可以控制 C 代码,那么在您的 C 头文件中您应该拥有:
#ifdef __cplusplus
extern "C" {
#endif
// normal header stuff here
#ifdef __cplusplus
};
#endif
这样,当它们同时包含在 C 和 CPP 代码文件中时,它们可以被正确解释。
如果您通过 header 将 C 代码包含在您的 C++ 中,并且它不包含上面的代码,并且您没有足够的控制权来进行必要的修改,请务必使用例如
extern "C" {
#include "some_c_header.h"
};
请注意,您也可以将其用作声明的修饰符,例如:
extern "C" void someFunction();
请注意,C++ 具有这种导入 C 功能的机制。 C 没有用于导入 C++ 的工具,并且尝试在 C 编译单元中包含 C++ 代码将很快以一堆错误消息告终。这样做的一个后果是您的主要功能将需要是 C++。
关于c++ - 同时包含 C 和 C++ 文件的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777824/