你在这里问两个问题,真的......
如何在C++中创建C样式结构?
代替
struct foo { /* ... */ };
Run Code Online (Sandbox Code Playgroud)
使用
extern "C" {
struct foo { /* ... */ };
}
Run Code Online (Sandbox Code Playgroud)
这可能不会导致任何不同,即"C++样式结构"和"C样式结构"通常是相同的,只要您不添加方法,受保护的成员和位字段.但是,由于函数需要"extern C",所以在这些大括号中包含所有用于C的代码是合理的.
有关更多详细信息,请参阅:外部"C"在C++中的作用是什么?和@AndrewHenle的评论.
我...需要使用用C编写的库
我在这里解释一个正式的C++ FAQ项目,告诉你(惊讶,惊讶)只是在一个extern C块中包含库头,然后像你编写C一样使用它中的任何内容:
extern "C" {
// Get declaration for `struct foo` and for `void f(struct foo)`
#include "my_c_lib.h"
}
int main() {
struct foo { /* initialization */ } my_foo;
f(my_foo);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |