これはおそらく私が間違っていることは本当に愚かなことですが、それが何であるかを理解することはできません。
私は構造体を持っています、PDRect
そのメンバーはとです:PDPoint
PDSize
typedef struct {
GLfloat x, y;
} PDPoint;
typedef struct {
GLfloat width, height;
} PDSize;
typedef struct {
PDPoint origin;
PDSize size;
} PDRect;
私が1つをインスタンス化すると、次のようになります。
PDRect rect = {
.origin = {
.x = 0,
.y = 0
},
.size = {
.height = .5,
.width = .5
}
};
デバッガーは、rect.origin.width
とrect.origin.height
が両方とも存在し、0に等しくrect.size.x
、rect.size.y
両方が存在し、.5に等しいと言います。なぜこれが起こっているのか分かりません。
明確にするための編集:私の混乱は、rect.origin(PDPoint)に高さと幅の値が関連付けられており、rect.size(PDSize)にxとyの値が関連付けられている理由です。原点はxとyだけで、サイズは高さと幅だけではいけませんか?
編集:それは実際にそれらを非匿名で宣言するように修正しました、すなわち:
typedef struct _PDPoint {
GLfloat x, y;
} PDPoint;
typedef struct _PDSize {
GLfloat width, height;
} PDSize;
typedef struct _PDRect {
PDPoint origin;
PDSize size;
} PDRect;
なぜそれが違いを生むのか、実際にはわかりませんが、問題は解決したようです。