在MS Visual Studio Quick-Watch窗口中显示的结构布局不正确

时间:2012-03-07 16:44:33

标签: c visual-studio visual-studio-2005

我的结构定义如下所示:

struct mystruct
{
    int first;
    int second;
};

我最近更新了它,添加了更多成员:

struct mystruct
{
    int first;
    int additional1;
    int additional2;
    int second;
};

我正在调试看起来像这样的代码:

mystruct object;
...
object.second = 128;
printf("%d\n", object.second);

执行代码后,我在Quick-Watch窗口中查看object.second并看到0;但是,代码输出128。当我查看object时,我只看到firstsecond成员,就像Quick-Watch窗口仍然使用我的旧结构声明一样。

此外,object.second的地址(如果我从代码中打印出来的话)与我在快速观察窗口中看到的地址不同,如果我在那里输入&object.second(关闭几个字) ;我的结构实际上包含了几十个成员,为简洁起见我省略了。

我尝试通过重新编译,重新启动,还原最近的更改(我使用版本控制系统)并返回它来修复这些不兼容性。我还能尝试解决这个问题吗?

我使用MS Visual Studio 2005.我的代码实际上是C ++,但这部分属于C / C ++公共子集。

1 个答案:

答案 0 :(得分:0)

当您编写mystruct object;时,它适用于Visual Studio 2005,但是当您使用普通的struct decleration并且不使用typedef时,正确的方法是struct mystruct object;解释here

我不确定这是否会让你感到困扰,但试一试。