关于VS2008中编译C语言的问题..

Engine_Start 2011-03-01 09:31:44
VS2008用的是什么标准阿?C89 还是C99..

还有就是在VS2008里面是不是不能这么写For循环阿?
我是这么写的:
for(int i=0;i<7;i++)
不能在这里定义变量i吗? 只能在程序开头?
...全文
187 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchensong 2011-03-02
  • 打赏
  • 举报
回复
跟你的后缀可能有关系吧,你换成cpp可能就可以了
G_Spider 2011-03-02
  • 打赏
  • 举报
回复
int i;
...
for(i=0;i<num;i++)
{
...
}

////////////
或者
...
{
int i;
for(i=0;i<num;i++)
{
....
}
}
  • 打赏
  • 举报
回复
C语言的规则是:先定义后说明
不妨在FOR前先定义
莫名的默默 2011-03-02
  • 打赏
  • 举报
回复
我遇到过
vc 6.0
vs2005
for(int i = 0; i< num; i++)
i的作用范围就不一样
就不一样
Engine_Start 2011-03-02
  • 打赏
  • 举报
回复
我确实是i只有在这一个for循环中用阿,但是还是编译不出来,可能就是标准的原因吧.
碎碎念 2011-03-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hawk198 的回复:]

vs系列的既不是c89也不是c99,是微软的c标准,与ansi c标准是不兼容的,因为微软自认为自己才应该是标准定义者,看不起ansi
如果要学习标准C,还是用ansi编译器才行,linux下的gcc,windows下的mingw等等都是ansi c标准的东东。
不过微软的c标准兼容绝大多数c89的定义,毕竟是借鉴出来的,不过后来就与ansi越来越远了
[/Quote]
++
这么写
for(int i=0;i<7;i++)
{}
可以编译通过的...
只不过在for以外i就不可用了..
AnYidan 2011-03-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hawk198 的回复:]
vs系列的既不是c89也不是c99,是微软的c标准,与ansi c标准是不兼容的,因为微软自认为自己才应该是标准定义者,看不起ansi
如果要学习标准C,还是用ansi编译器才行,linux下的gcc,windows下的mingw等等都是ansi c标准的东东。
不过微软的c标准兼容绝大多数c89的定义,毕竟是借鉴出来的,不过后来就与ansi越来越远了
[/Quote]

学习了,

for(int i=0;i<7;i++)
i 在此循环后就不可见了,如在此循环后仍需要i, 最好早声明
hawk198 2011-03-02
  • 打赏
  • 举报
回复
vs系列的既不是c89也不是c99,是微软的c标准,与ansi c标准是不兼容的,因为微软自认为自己才应该是标准定义者,看不起ansi
如果要学习标准C,还是用ansi编译器才行,linux下的gcc,windows下的mingw等等都是ansi c标准的东东。
不过微软的c标准兼容绝大多数c89的定义,毕竟是借鉴出来的,不过后来就与ansi越来越远了
「已注销」 2011-03-01
  • 打赏
  • 举报
回复
C语言的变量只能在花括号后面定义。。。。。
無_1024 2011-03-01
  • 打赏
  • 举报
回复
不是 i的生命周期只在for里面 除了for以后就不能使用了
delphiwcdj 2011-03-01
  • 打赏
  • 举报
回复
for(int i=0;i<7;i++)
{}// i的生命周期在{}里
ls251544415 2011-03-01
  • 打赏
  • 举报
回复
C89
纯C环境中,函数块中的变量必须放在所有语句前面声明

微软沿用的一直都是C89
proghua 2011-03-01
  • 打赏
  • 举报
回复
对VS2008编译c文件,变量必须在函数开始声明

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧