简单有关问题:关于Struct的使用

简单问题:关于Struct的使用
项目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 无奈