我正在用C编写的一些代码编写一个(我的第一个)C++类,但是我只能通过在extern块中声明C函数来编译C++.我的项目使用autotools; 有没有办法自动化这个过程,所以我不必维护两个头文件?
epa*_*tel 15
在C代码头文件中的#ifdef中使用extern块
头文件的开头
#ifdef __cplusplus
extern "C" {
#endif
Run Code Online (Sandbox Code Playgroud)
...并在头文件的末尾
#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)
这样它就可以包含在C和C++源代码中
是的,创建包装器头文件,其中包括 C 头文件,如下所示......
//Wrapper.h
#ifdef __cplusplus
extern "C"
{
#include "Actual.h"
}
#else
#include "Actual.h"
#endif
//Use.cpp
#include "Wrapper.h"
int main()
{
return 0;
}
//Use.c
#include "Wrapper.h"
/*or #include "Actual.h" */
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
317 次 |
| 最近记录: |