我在“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 的顶部执行这些分配时,我得到“'objmesh'没有命名类型”错误。
但是当我将所有这些分配放在 parser.cpp 中的一个函数中时(而 obj objmesh; 具有全局范围),我没有收到错误并且编译得很好。
谁能想到为什么会这样?我正在使用 Mingw Gnu 4.6 C++ 编译器