質問
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 ++ではパディングを変更できないため、プラットフォームに依存します。そのコードがそれをどのように配置するか、そして私が正しいかどうかを調べてください:)
所属していません StackOverflow