我的结构定义如下所示:
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
时,我只看到first
和second
成员,就像Quick-Watch窗口仍然使用我的旧结构声明一样。
此外,object.second
的地址(如果我从代码中打印出来的话)与我在快速观察窗口中看到的地址不同,如果我在那里输入&object.second
(关闭几个字) ;我的结构实际上包含了几十个成员,为简洁起见我省略了。
我尝试通过重新编译,重新启动,还原最近的更改(我使用版本控制系统)并返回它来修复这些不兼容性。我还能尝试解决这个问题吗?
我使用MS Visual Studio 2005.我的代码实际上是C ++,但这部分属于C / C ++公共子集。
答案 0 :(得分:0)
当您编写mystruct object;
时,它适用于Visual Studio 2005,但是当您使用普通的struct decleration并且不使用typedef时,正确的方法是struct mystruct object;
解释here
我不确定这是否会让你感到困扰,但试一试。