对VS2005C++编译器的一点体会
使用Visual Studio 2005一段时间后,发现其C++编译器比以前更加遵循C++标准。有两个语法变化让我印象深刻:
1.for循环语句中循环控制变量的有效范围更加明确。
我们曾经在for语句中这样写:
for(int I = 0;i//做某事
}
if (i>0) {
//做其他事情
}
在这段代码中,I是一个循环控制变量。循环处理后,I在loop语句外仍然是有效变量,可以在后面的代码中使用。
在正式的C++标准中,这是不允许的。
使用新编译器编译原始代码时,必须进行以下修改:
int I;//移出for循环
for(I = 0;i//做某事
}
if (i>0) {
//做其他事情
}
2.常量的类型定义更加严格。对于下面的常量定义,编译器通常将其默认为int类型:
const BUFLEN = 255
但是,在新的编译器中,这种没有类型声明就隐式指定常量为整数的语法将被禁止。该类型必须声明如下:
const int BUFLEN = 255
3.除此之外,在使用Visual Studio 2005编写MFC程序时,还有一个小变化,就是CWnd::OnNcHitTest的返回值原来是UINT,现在是LRESULT。
位律师回复
0条评论