返回信息流for(int i=0;i<5;i++)
{balabala;}
int i=2;
vc下会有重复定义的问题吧
gcc也会报错,是不是因为c中不能在for括号表达式中定义变量?
但g++编译通过。。。。
着实没注意过这个问题,应该也没人这么定义变量。
for循环体中的变量的作用域只是局部,应该只作用在for中
翻了翻书,局部作用域、函数作用域,有点糊涂。
不太追究编译器的差异了,
就是这个作用域谁给总结下,谢谢哈
这是一条镜像帖。来源:北邮人论坛 / cpp / #14044同步于 2008/10/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
弱问个重复定义、变量作用域的问题
nkutobupt
2008/10/15镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
vc6 对C++支持很烂
【 在 nkutobupt (九河下梢之aiwdt) 的大作中提到: 】
: for(int i=0;i<5;i++)
: {balabala;}
: int i=2;
: ...................
呃。。。我也不知道
槑怎么用过vc。。随便找了台电脑试的vc
这个问题,是编译器区别造成的?
那标准c++对这个问题有什么说法么?
【 在 Nathan 的大作中提到: 】
: vc6 对C++支持很烂
c99没变 c其实是要求所有的变量都在程序最开始时候声明的。。。
【 在 Solmyr (一直在模仿,不断被超越) 的大作中提到: 】
: C标准是不允许在for语句内定义循环变量的,所以要在for之前定义,不是重复定义的事,不知道C99对这点改动了没有
: C++允许,所以g++可以通过
哦,是不是C99把这点改了?
还是说K&R要求全在头部声明,C标准没有要求?记混了。
【 在 purevirtual 的大作中提到: 】
: c99没变 c其实是要求所有的变量都在程序最开始时候声明的。。。
循环变量中的声明,
C++中是允许的,C语言99标准也是允许的。
VC太烂,肯定不支持。
gcc需要在编译的时候加上标准的参数 -std=c99 好像是这样不清楚了。
我囧了,还真的可以,不一定要在头部声明,在使用前声明就可以。。。。
不过vc里还是要头部声明
【 在 Solmyr (一直在模仿,不断被超越) 的大作中提到: 】
: 哦,是不是C99把这点改了?
: 还是说K&R要求全在头部声明,C标准没有要求?记混了。