按值传递的参数在 Visual Studio 2015 x64 调试器中显示不正确?
Posted
技术标签:
【中文标题】按值传递的参数在 Visual Studio 2015 x64 调试器中显示不正确?【英文标题】:Parameters passed by value displayed incorrectly in the visual studio 2015 x64 debugger? 【发布时间】:2017-01-19 08:48:41 【问题描述】:x86 工作正常。 x86 debug values screenshot
但是 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,这些是调试器窗口的图片,不是代码 你确定是同一个代码吗?老实说,在第一个示例中,传递给函数的向量似乎已正确初始化,而在第二个示例中则没有。 另外你应该添加一个Minimum Compilable Verifiable Example,特别是因为你说你可以在一个新项目中重现它。 @SingerOfTheFall 是的,完全一样。我只是在顶部工具栏中从 x84 更改为 x64。 切换构建配置后是否重新构建了项目?尝试清理项目,然后重建 【参考方案1】:重新安装 Visual Studio 解决了这个问题。
【讨论】:
以上是关于按值传递的参数在 Visual Studio 2015 x64 调试器中显示不正确?的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2010 中传递命令行参数?
如何在 Visual Studio 2015 调试中将“%”符号作为命令行参数 (argv) 传递?