首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-10-01 
简单问题:关于Struct的使用项目1:A.h:struct AA.cpp:struct A{......}B.cpp#include A.h项目2:int main

简单问题:关于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 无奈

热点排行