首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > VSTS >

VC++6.0与VS2008运作C语言的一点差异

2013-01-17 
VC++6.0与VS2008运行C语言的一点差异此贴虽短,但是这个问题困扰了一位C语言程序员一天。 看代码:#include

VC++6.0与VS2008运行C语言的一点差异

此贴虽短,但是这个问题困扰了一位C语言程序员一天。

 

看代码:

#include <stdlib.h>#include <stdio.h>main(){int a;a*=1;printf("%d",a);}


在vs2008上的运行结果:

 

 

VC++6.0与VS2008运作C语言的一点差异

 

在VC++6.0上的运行结果:

VC++6.0与VS2008运作C语言的一点差异

 

没有报错。

总结如下:

在vs2008下,变量未赋初值,直接编译,不报错。运行时报错。

在VC++6.0下,变量未赋初值,直接编译,不报错。运行时不报错。

 

看来,使用高版本的IDE还是可以提高编程效率的。

 

 

1楼pochioly昨天 17:13
其实访问未初始化变量这种行为是个未定义行为,n未定义行为在标准中的规定是编译器自己决定怎么做,也就是说夸张点说这个行为的结果为硬盘格式化都是可以的。nn这里完全是VC2008编译器自己做的,行为的结果是运行时检测没初始化变量(以及弹出错误提示)。

热点排行