简单有关问题:关于Struct的使用
简单问题:关于Struct的使用
项目1:
A.h:
A.cpp:
B.cpp
编译的时候遇到:
Ray/MomeryAlignment/main.cpp:7:55: error: invalid application of 'sizeof' to incomplete type 'A'
我想如果能把结构体A的定义移到A.h文件中,应该能够解决这个问题。但是,遗憾的是,A.h 和 A.cpp为提供级源码,最好不要移动。
其他还有别的什么办法让我在另一个项目的B.cpp中使用结构体A呢?
在LOCAL_SHARED_LIBRARIES中添加A.cpp编译出来的lib是否可行呢?
------解决方案--------------------
你这种问题,最好使用接口和 CreateInstance 方式。
------解决方案--------------------
------解决方案--------------------
#include "A.h"
改
#include "A.cpp"
------解决方案--------------------
我也觉得 include A.cpp 是最简单的了。
因为 A 类的那种写法,A.h 根本没有起到头文件的作用,反而 A.cpp 才具有头文件的功能。
------解决方案--------------------
这里#include A.cpp是可行的;
------解决方案--------------------
做不到
sizeof 的操作数 不能是函数类型 不完整类型 和 位域
这里的做法A是不完整类型
不能被sizeof 无奈
项目1:
A.h:
struct A;
A.cpp:
struct A{
......
}
B.cpp
#include "A.h"
项目2:
int main {
A* mon = (A*) calloc(1, sizeof(A));
......
}
编译的时候遇到:
Ray/MomeryAlignment/main.cpp:7:55: error: invalid application of 'sizeof' to incomplete type 'A'
我想如果能把结构体A的定义移到A.h文件中,应该能够解决这个问题。但是,遗憾的是,A.h 和 A.cpp为提供级源码,最好不要移动。
其他还有别的什么办法让我在另一个项目的B.cpp中使用结构体A呢?
在LOCAL_SHARED_LIBRARIES中添加A.cpp编译出来的lib是否可行呢?
c
struct
------解决方案--------------------
你这种问题,最好使用接口和 CreateInstance 方式。
------解决方案--------------------
#include "A.h"
/*将A.cpp中的
struct A{
......
};
拷贝到此处,小心字节对齐要与A.cpp一致,小心与A.cpp同步修改 */
struct A{
......
};
项目2:
int main {
A* mon = (A*) calloc(1, sizeof(A));
......
}
------解决方案--------------------
#include "A.h"
改
#include "A.cpp"
------解决方案--------------------
我也觉得 include A.cpp 是最简单的了。
因为 A 类的那种写法,A.h 根本没有起到头文件的作用,反而 A.cpp 才具有头文件的功能。
------解决方案--------------------
这里#include A.cpp是可行的;
------解决方案--------------------
做不到
sizeof 的操作数 不能是函数类型 不完整类型 和 位域
这里的做法A是不完整类型
不能被sizeof 无奈