如在VC6中,在FOR循环中的循环变量的定义的作用域延伸到循环体外,
VS2008则修正了这样的bug,只作用在循环体内,所以
VC6:
for(int i=0; i<100; i++)
{
fun2();
}
for(i = 1;i<10;i++)//i已经定义
{
f1();
}
这样的语句是可以的。
而在VS2008中,第二句的i必须重新定义
for(int i=0; i<100; i++)
{
fun2();
}
for(int i=1; i<10; i++)
{
f1();
}
或者把第一个for循环的循环变量定义在外部如下:
int i;
for(i=0; i<100; i++)
{
fun2();
}
for(i=1; i<10; i++)
{
f1();
}
如果有很多这种for循环,而且循环变量的名称有很多,怎么批量替换呢,
这要用到正则表达式
搜索表达式:{\t*}{ *}for[ (][( ]int{ +}{[^ =]+}
{}标识一个带标记的表达式,从前到后分别是1,2,3,4。在后面替换时要用到分别用\1 \2 \3 \4表示
\t*表示0个或多个tab
*表示0个或多个空格
[ (]表示空格和(的任何一个
{ +}表示一个或多个空格也可以改成{[ ]*}
{[^ =]+}表示空格和=号除外的一个或多个字符,就是循环变量比如:i,j,Num,nCount等
替换表达式:\1\2int \4;\n\1\2for (\4