Sunday, July 15, 2007

大家知道,VC6.0中for循环里面的变量作用域扩展到了for循环之外,比如



for(int i=0;i<5;i++)
{
//...
}
for(int i=0;i<10;i++)//error
{
}

这一行为不符合C++规范,导致很多在VC6下开发的程序不能在更高版本的VC下编译。近日翻看Trolltech Qt4的代码,发现要将VC6中循环变量的作用域限制在for循环内部其实很简单,只要在项目中一个所有cpp文件都包含的.h文件中加入如下代码



#define for if(0){}else for

No comments: