[英]To add c++ header files in C header using C compiler?
我有一个 C++ 头文件,我将其包含在使用 C 编译器运行的项目中。 我在 C++ 头文件中有一些错误,因为两种编译器的语法显然不同。 但障碍是我不应该修改 c++ 头文件。 在阅读了几篇文章后,我尝试使用'C' extern,但似乎 C 编译器无法识别“__cplusplus”。
有什么方法可以在 C 头文件中实现以包含 C++ 头文件?
例如。 C 编译器给出错误“标识符‘当前’未定义”,因为在下面的代码中,‘当前’前面缺少‘结构’关键字。
struct Current {
uint16_t mini;
uint16_t maxi;
uint16_t counter;
};
struct someConstraint {
union {
Current ac_curr;
};
};
请帮忙,谢谢!!
副总裁
ISO C N2176 §6.2.2标识符的链接
- 对于标识符 […] 如果没有可见的先前声明,或者如果先前的声明未指定链接,则标识符具有外部链接。
您可以typedef
该struct
:
typedef struct Current Current;
#include "somelib.h" // defines struct Current
您可以按原样编写 C 代码,然后使用 C++ 编译器进行编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.