在Visual Studio 2013中,为什么之前执行的代码现在仍在执行

C in Visual Studio 2013, why is previously executed code which is now in comment still executing?

本文关键字:执行 代码 为什么 Studio Visual 2013      更新时间:2023-10-16

我在Windows 7 32位操作系统上使用Visual Studio 2013,我想运行一些非常简单的C代码。

提示:我所有的代码都在同一个项目-->和相同的代码页!

运行一个简单计算的第一个代码给了我正确的结果,这是ok的,参见任务1:

// Task 1
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int main()
{
printf("4 + 6 / 2 = %i", 4 + 6 / 2);        //Result = 7!  -->Correct!
getchar();
return 0;
}

然后我把上面的代码(任务1)放在注释中,并添加任务2:

/* Task 1
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int main()
{
printf("4 + 6 / 2 = %i", 4 + 6 / 2);        //Result = 7!  -->Correct!
getchar();
return 0;
}*/

// Task 2 
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int main()
{
int x, y;
printf("PROGRAM:nPlease type x ");     
scanf("%i", x);                         
printf("nPlease type y");          
scanf("%i", y);
printf("nx * y = %i", x*y);                 
printf("nx / y = %i", x/y);                
printf("nx % y = %i", x%y);                 
getchar();
return 0;
}

现在,当我执行这段代码时,它给了我任务1的前一段代码的结果。所以看起来它执行了前面的代码,但它不应该这样做,因为代码现在在注释中。它应该执行任务2中的第二段代码。

有人知道为什么任务2的新代码没有执行吗?我怎样才能阻止/第一个代码执行?

即使我删除了任务1的代码(从代码页)->保存它并关闭Visual Studio Program并重新打开项目。当我再次运行代码时(在代码页中只有任务2的代码),它显示了前一个任务1的结果。

可能有一个错误的设置,但究竟在哪里和什么?

如果有人能帮我一下就太好了。

提示2:源文件本身仍然保存为。cpp,但不应该是原因,对吗?我还更改了这个"设置":->项目->属性->配置属性-> C/c++ ->高级->编译为:编译为C代码(/TC)

没有变化,相同的错误行为!

当你看到"can't"是正在执行的代码时,有两种可能性

  • 旧的目标代码正在运行…重建应该修复…clean and build 修复。
  • 你有一个旧的进程仍然活着,修复是:关闭并检查任何旧的运行进程…并杀死他们。

有一些更棘手的场景:

  • 你认为你正在运行旧代码,因为你错过了一个断点-这可能意味着你的断点被优化了,或者你没有调试符号
  • 你正在运行一个动态库的旧代码,而不是你正在编译的库…这是更棘手的发现和修复。

这可能是它没有使用新版本,即编译。尝试通过project>>右键单击>> Clean在项目上运行"Clean"。然后重建并重试。有时在obj, build, debug文件夹之间会混淆。

确保您运行的不是旧版本的构建。重新构建所有,然后进入项目目录,选择项目,并在完成构建(现在应该是.exe)时检查日期和时间是否当前,以确保您处理的是最新的构建。

否则,正如其他人建议的那样,您可能需要"清理"您的构建。