1
x86は問題なく動作します。 x86 debug values screenshotビジュアルスタジオの2015 x64デバッガで値渡しのパラメータが正しく表示されませんでしたか?
x64は正しく表示されません。 x64 debug values screenshot
ここにコードがあります。
struct vector3 { float x, y, z; };
vector3 mul(vector3 v1, vector3 v2)
{
vector3 v3 = { v1.x * v2.x, v1.y * v2.y, v1.z * v2.z };
return v3;
}
int main()
{
vector3 a = { 1.0f, 1.0f, 1.0f };
vector3 b = { 2.0f, 2.0f, 2.0f };
vector3 c = mul(a, b);
return 0;
}
私が最初に私の個人的なプロジェクトの一つで、このことに気づいて、新しいプロジェクト(上記画像は、新規プロジェクトからのもの)でそれを再現することができました。
私はそれを引き起こしているのだろうか。 不正なインストール、またはVSのバグ? 他のマシンでも複製できますか?
これはコードを作成するのと同じくらい簡単です。このコードは、x64の上で正常に動作
注:
struct vector2 { float x, y; };
vector2 mul(vector2 v1, vector2 v2)
{
vector2 v3 = { v1.x * v2.x, v1.y * v2.y };
return v3;
}
int main()
{
vector2 a = { 1.0f, 1.0f };
vector2 b = { 2.0f, 2.0f };
vector2 c = mul(a, b);
return 0;
}
@ Jonas、それらはデバッガウィンドウの図であり、コードではありません – SingerOfTheFall
それは同じコードですか?正直なところ、最初の例のように、関数に渡されたベクトルは適切に初期化されていますが、2番目の例ではそうではありません。 – SingerOfTheFall
また、[最小限のコンパイル可能な検証可能な例](http://stackoverflow.com/help/mcve)を追加する必要があります。特に、新しいプロジェクトでそれを再現できると言っているからです。 – SingerOfTheFall