我正在编写一个结构来描述我需要的常量值,并注意到一些奇怪的东西。
namespace res{
namespace font{
struct Structure{
struct Glyph{
int x, y, width, height, easement, advance;
};
int glyphCount;
unsigned char asciiMap[]; // <-- always generates an error
Glyph glyphData[]; // <-- never generates an error
};
const Structure system = {95,
{
// mapping data
},
{
// glyph spacing data
}
}; // system constructor
} // namespace font
} // namespace res
的最后两个成员Structure
,即未调整大小的数组,如果它们本身不停止编译器。但是如果它们都包含在结构的定义中,则会导致错误,说“类型不完整”
如果我给第一个数组一个大小,这不再是一个问题。在这种情况下这不是问题,但我仍然很好奇......
我的问题是,为什么我的结构中可以有一个大小不一的数组,但有两个会导致问题?