我有一个这样的结构在 “parser.h”结构分配给全局名称类型的错误
struct obj{
char *filename;
unsigned long nverts;
unsigned long curvert;
double (*verts)[3];
unsigned int *faces[3];
};
typedef obj obj;
和parser.cpp
我声明
obj objmesh;
objmesh.filename="c://temp//wings.obj";
objmesh.nverts = 20;
objmesh.verts = (double (*)[3]) malloc(objmesh.nverts * sizeof(double[3]));
objmesh.curvert = 0;
当我在parser.cpp的顶部做这些assigments我得到“'objmesh'没有命名一个类型”的错误。
但是,当我把所有这些分配在一个函数中parser.cpp(而obj objmesh;具有全局范围),我没有错误,并编译好。
任何人都可以想到为什么会出现这种情况的原因吗?我使用MinGW的GNU 4.6 C++编译器
你是说分配不在函数中吗? – 2013-02-10 00:31:19
垫子,当作业是全球性的,我得到一个错误。当任务在一个函数中,但声明仍然是全局的,我没有错误。 – 2013-02-10 00:32:58
你正在编写C或C++吗?因为C++的答案(使用构造函数)不会工作在C – MSalters 2013-02-10 00:41:50