必要な定数値を記述する構造体を書いていて、奇妙なことに気付きました。
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
の最後の 2 つのメンバーでStructure
あるサイズ変更されていない配列は、単独である場合、コンパイラを停止しません。ただし、構造体の定義に両方が含まれていると、「型が不完全です」というエラーが発生します。
最初の配列にサイズを指定すると、これは問題になりません。この場合、これは問題ではありませんが、私はまだ興味があります...
私の質問は、構造体にサイズのない配列を 1 つ持つことができるのに、2 つあると問題が発生するのはなぜですか?