0

いくつかのコンテキスト: iOS アプリの開発。Xcode の Objective-C コード。

これは何時間も私を混乱させてきました:

私は作成した小さな構造体を持っています:

struct EIVertex {
    GLKVector3      P;
    GLKVector3      N;
    GLKVector3      barycentric;
    GLKVector2      st;
};

GLKVector3およびGLKVector2GLKit フレームワークにある型です。

奇妙なのは次のとおりです。

sizeof(GLKVector2) = 8
sizeof(GLKVector3) = 12
sizeof(EIVertex) = 48

のサイズEIVertex48 ですが、44 (12 + 12 + 12 + 8 = 44) にする必要があります。

誰かがこのサイズの不一致がある理由を説明できますか?

4

1 に答える 1

2

C の構造体は、データの位置合わせのためにパディングされる傾向があります。詳細については、このページを確認してください。この質問の回答も参照してください。

于 2013-04-10T23:38:51.647 に答える