x86 отлично работает. x86 debug values screenshotПараметры, переданные по значению, отображаемому неверно в отладчике x64 от студии studio studio 2015?
Но 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
Вы уверены, что это тот же код? Честно говоря, это просто похоже, что в первом примере векторы, переданные функции, были правильно инициализированы, а во втором примере они не были. – SingerOfTheFall
Также вы должны добавить [Минимальный компилируемый проверяемый пример] (http://stackoverflow.com/help/mcve), тем более, что вы говорите, что можете воспроизвести его в новом проекте. – SingerOfTheFall