我有一个C++包含方法的结构:
struct S
{
int a;
int b;
void foo(void)
{
...
};
}
Run Code Online (Sandbox Code Playgroud)
我有一个用户程序,写在C.是否有可能得到一个指向S-struct和访问成员a和b?
您可以struct从C程序访问C++编写的成员,前提是您确保删除了对struct语法的C++添加:
// header
struct S {
int a, b;
#ifdef __cplusplus
void foo();
#endif
};
// c-file:
#include "header.h"
void something(struct S* s)
{
printf("%d, %d", s->a, s->b);
}
Run Code Online (Sandbox Code Playgroud)
C++中结构和类的内存布局与C语言的C部分兼容.只要在结构中添加vtable(通过添加虚函数),它就不再兼容,您必须使用其他一些技术.
| 归档时间: |
|
| 查看次数: |
2413 次 |
| 最近记录: |