C语言变量只能在开头声明吗?

在VC里面 我在程序中部声明 一个变量就失败了
在 最前面就行 难道C语言只能在最前面声明变量?
我把后缀名改成 .cpp就好了

在C语言里,变量只能在函数的开头处声明和定义。在函数里要用到的变量必须要在开头处声明定义。声明定义的前面不能有任何其他非声明定义的语句。全局变量在函数体的外部声明定义。而C++里(.CPP文件是按C++标准编译的),只要在用到变量前对该变量进行声明定义就行了,位置不做特别要求。而C语言的就定了在一个模块里(函数、循环体等)先声明一切所需变量后才能进行相关操作的规定。呵呵~可能说得不是很清楚,有不明白的可以给我留言追问

奥 另外我在网上搜的时候 网上有人说 现在C语言的新规范应该可以在 中间声明了
之所以不行 说是因为编译器老了
倒底怎么回事啊? 另外 怎么用visual stdio 编写C语言程序啊
我再里面 写好了 连编译都不能通过 怎么回事?

追答

新标准我也不是很清楚,但是老编译器,像VC++6.0,就是按这个:先在前面声明才能使用。我用的是VS2008,默认下都是CPP文件,相信你也知道C++兼容C语言的吧。所以“现在C语言的新规范应该可以在 中间声明了”可能就是这原因。 你所说的“怎么用visual stdio 编写C语言程序啊 我再里面 写好了 连编译都不能通过 怎么回事”,可能是你用的还是老一套的标准来写吧,呵呵,不知道你的代码是什么,只能这么猜测了。编译器在编译代码的时候都是按照文法来划词的(记得好像是这样),规定是做编译器的作者自己定的。可能以前就那一套规则吧。还有些以前老标准的库函数呗人为是存在安全问题之类的原因,所以新编译器可能对这些函数有特别的要求吧,呵呵,我在VC6上完全通过的代码,在VS2008上就语法错误一大堆,就是这原因。
如果你不是搞研究这方面的话,就在CPP里写C语言代码吧,这样就会轻松点,但是这样写起来就C不像C,C++不像C++的感觉了。呵呵,我是学生来的,回答不足或错误之处请高人指正哈!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-21
呵呵 在C语言中变量 只能现定义后使用。所以在你用之前必须要定义。但.cpp那是C++的文件,支持类的调用,所以可以了。
第2个回答  2011-04-22
是的,c语言只能在程序开始声明完所有的变量
第3个回答  2011-04-19
C的变量确实只能在一开始定义和声明,C++则是中间也可以的。
第4个回答  2011-04-19
当然不是啊,可以在其他部分声明的