visual studio 2010 编写C语言程序,被要求把所有的变量声明中间不能夹带赋值等其他指令,求指导

原本直接用GCC可以运行的程序,在vistual studio 2010 上面无法运行了,十分头痛,最后发现时声明的,问题。
似乎VS 2010 要求我变量声明中间不能夹带赋值等其他指令,十分奇怪。下面是无法运行的例子。希望大神给解答一下,程序本身很简单,肯定是对的,我觉得是VS 2010配置上面没做好,但是实在不知道哪里有问题。
#include<stdio.h>
#include<stdlib.h>

void main(){

int a;
a = 10;
int b; // VS 2010 在这里报错, 报错的内容是“test.c(8): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)”
b = 10;
return;

}

如果把 int b放到前面就没有问题了,没问题的如下
#include<stdio.h>
#include<stdlib.h>

void main(){

int a;
int b;
a = 10;

b = 10;
return;

}
但实质上两个程序应该都是可以的,已经在GCC上面运行成功了,不了解到底是为什么VS2010上面部队,希望解答

我建立项目的方法是,建立Win32控制台应用程序,然后再源文件文件夹里面添加C++文件,但是文件名称写成 “test.c” 然后在里面放程序。

第1个回答  2014-01-08
c语言的中间是不能出现变量声明的,只有C++可以在中间声明变量,
vs只识别.cpp的文件,.c文件总是有问题,你就别纠结了,乖乖地用.cpp好了
第2个回答  2014-01-08
分析一下两种编译器分别支持c语言的哪种标准吧。
可能是VS2010对标准的C99支持不好~

这应该是两种编译器支持的标准不一样,按理来说,如果你下载的GCC是最新版的,那应该是支持最新标准的,所以你上面的第一份代码是可以运行的。
微软的东西,不一定会支持标准的东西,所以你还得查一下VS2010对标准到底支持到什么程度。这也是本人有点反感微软的地方。

我搜了一下vs2010对C99的支持,下面那篇博文应该对你有用。http://www.cnblogs.com/emituofo/archive/2012/07/21/2601930.html本回答被提问者采纳