【发布时间】:2012-02-26 14:11:30
【问题描述】:
我正在尝试在 C 中定义一个 4-d 矩阵类型(用于 iOS/ObjC 环境),它是封装的(所以不是裸数组),并且可以使用索引值或通过命名结构访问成员。这是我的尝试:
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;
这可行,但由于匿名(未命名)结构,我收到警告。我显然不想命名该容器结构,因为它仅用于容纳四个内部结构。
这个页面暗示我应该能够做到这一点? http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html#Unnamed-Fields
它似乎实际上工作,这是错误的,或者如果不是,我应该如何摆脱警告?
我正在使用 LLVM GCC 4.2。
感谢您的任何见解或建议。
【问题讨论】:
标签: c llvm-gcc anonymous-struct