lucky_小鱼 发表于 2015-5-14 22:57:43

关于同一个程序在codeblocks和vc 6.0上出现不同结果的问题

如图,为什么第二个for循环的i定义为整型在vc上会出错,而在codeblocks上没问题,有图有真相

~风介~ 发表于 2015-5-14 23:21:44

不要在意这些细节~{:9_223:}考虑用cfree5.0代替vc6.0++吧.

lucky_小鱼 发表于 2015-5-15 09:10:20

~风介~ 发表于 2015-5-14 23:21
不要在意这些细节~考虑用cfree5.0代替vc6.0++吧.

嗯,那我想问下,哪个是正确的?第二个for循环i需不需要定义为整型变量呢{:9_241:}

~风介~ 发表于 2015-5-15 10:37:19

lucky_小鱼 发表于 2015-5-15 09:10
嗯,那我想问下,哪个是正确的?第二个for循环i需不需要定义为整型变量呢

如果你把for循环的i的定义(int i;)放到for 循环之外去,两个编译器都应该不会报错吧~

南郊居士 发表于 2015-5-15 10:40:19

在VC6.0中,for循环括号里的变量声明是被解释为在for循环之前声明的,你这样声明当然会被认为重复声明,而且在VS后续版本中,这样的声明方式是不被允许的。

所以为了避免歧义,保证可移植性,建议楼主采用比较通用的方式声明变量:
int i = 0;
for (...)
...

lucky_小鱼 发表于 2015-5-15 13:47:17

~风介~ 发表于 2015-5-15 10:37
如果你把for循环的i的定义(int i;)放到for 循环之外去,两个编译器都应该不会报错吧~

是不会报错,唉,不深究那么多了。知道这样有问题就好了{:1_1:}谢谢你帮忙解答~

lucky_小鱼 发表于 2015-5-15 13:49:22

南郊居士 发表于 2015-5-15 10:40
在VC6.0中,for循环括号里的变量声明是被解释为在for循环之前声明的,你这样声明当然会被认为重复声明,而 ...

嗯,好的。我原来就想问问为什么出现这样的问题,不过我平时写的时候是在for之前申明i变量{:5_91:}
页: [1]
查看完整版本: 关于同一个程序在codeblocks和vc 6.0上出现不同结果的问题