c++ - 同时包含 C 和 C++ 文件的项目

标签 c++ c

我可以拥有一个部分用 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/

相关文章:

java - 编译器使用关联性有什么问题?

c - C 语言编程中与 while 循环有关的 True 或 False

c++ - 我如何使用带有 2 个以上参数的比较函数和 C++ 优先级队列?

c++ - 使用 mciSendString (MCIERR_CANNOT_LOAD_DRIVER) 播放 mp3 文件

c++ - 优化提升无序映射和集合,C++

c++ - 通过异常处理错误

c++ - 如何让内部模板类成为外部模板类的类型?

在C中创建不同名称的文件

c - 在 C 中声明字符串/单词变量

c++ - 如何使用 libqrencode 编译项目?