代码示例:
for(int j = 0; j < 16; ++j)
{
}
printf("
printf("%d",j);
for(int j = 0; j < 16; ++j)
{
}
以上代码在VC6下编译出现 error C2374: 'j' : redefinition; multiple
initialization的错误
但是在VC7以上的版本没错,在遵循ANSI标准的C++编译器也通过。
这是因为 在VC6中,
而标准C++中, j的作用域在for语句块内.
本文探讨了VC6与标准C++在for循环中定义变量时的作用域差异,解释了为何VC6会出现变量重复定义的错误,而在VC7及更高版本中则不会出现此问题。
456

被折叠的 条评论
为什么被折叠?



