カプセル化された(裸の配列ではない)Cで(iOS / ObjC環境で使用するための)4次元行列型を定義しようとしています。これは、インデックス値または名前付き構造体メンバーを介してアクセスできます。これは私の試みです:
typedef union {
float m[16];
struct {
struct {
float x;
float y;
float z;
float w;
} x;
struct {
float x;
float y;
float z;
float w;
} y;
struct {
float x;
float y;
float z;
float w;
} z;
struct {
float x;
float y;
float z;
float w;
} w;
}; // warning here "Declaration does not declare anything"
} Matrix4;
これは機能しますが、匿名の(名前のない)構造体が原因で警告が表示されます。コンテナ構造体は4つの内部構造体を保持するためだけに機能するため、この名前を付けたくないのは明らかです。
このページは、私がこれを行うことができるはずだということを意味しますか? http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html#Unnamed-Fields
実際に機能しているようですが、これは間違っていますか、そうでない場合は、警告をどのように取り除く必要がありますか?
LLVMGCC4.2を使用しています。
洞察や提案をありがとう。