質問

if (vector1.x > ((float*)&vector1)[j])

j は単なるベクトルへの単なるインデックスですか?
例えばvectorは配列ではありませんが、C ++は配列表記を使用してこれらの値を取得できますか?
もしそうなら、アドレスで vector を参照することでこれを達成していると思いますか?

役に立ちましたか?

解決

C ++標準では、(pods)構造体のポインターを最初の要素の型のポインターにキャストすると、最初の要素へのポインターが生成されると説明されています。

struct a {
    float a1;
    float a2;
    float a3;
};

a o1; ((float*)&o1); // points to o1.a1

コードは、a1、a2、a3の間にパディングを追加しないようにコンパイラーに指示したため、ポインターにインデックスを付ける場合、必要なfloatに正確にポインターを移動するようです。そのため

((float*)&o1)[1] // *would* return o1.a2

標準C ++ではパディングを変更できないため、プラットフォームに依存します。そのコードがそれをどのように配置するか、そして私が正しいかどうかを調べてください:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top