繁体   English   中英

使用 C 编译器在 C 头文件中添加 c++ 头文件?

[英]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标识符的链接

  1. 对于标识符 […] 如果没有可见的先前声明,或者如果先前的声明未指定链接,则标识符具有外部链接

您可以typedefstruct

typedef struct Current Current;
#include "somelib.h" // defines struct Current

编译器资源管理器示例

您可以按原样编写 C 代码,然后使用 C++ 编译器进行编译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM