VS2010不支持标准C99??

hqyCoder 2010-11-27 01:34:51
最近我在使用使用vs2010 编写VLA相关的应用,结果告诉 VLA里面的下标 提示我不是 静态变量,也就意味着vs2010不支持VLA 请问大家是真的不支持还是我哪里设置错了导致不支持呢
举个例子如下:
#include<stdio.h>

int main()
{
int a = 3;
int b = 4;
int arr[a][b];
return 0;
}
这个例子绝对不能够在VS2010里面通过,我就在想,如此先进的编译器竟然不支持VLA,我真是无语,请问大家我是不是哪里设置错了哦!
...全文
3033 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
knief不懂就问 2011-12-16
  • 打赏
  • 举报
回复
给程序员找麻烦而已
justin_shi 2011-10-07
  • 打赏
  • 举报
回复 1
[Quote=引用 13 楼 zenny_chen 的回复:]

引用 11 楼 frankhb1989 的回复:

你知道为何微软对C99一直没兴趣?呵呵呵呵呵⋯⋯
因为C语言标准委员会中几乎就没有微软的人,取而代之的是GNU C编译器制作组的占多数,所以C99很多语法扩展都参考了GNU C Compiler对C语言的扩展。
微软从比尔大门开始起就鄙视开源,鄙视GNU!所以它当然不会去遵守C99标准。这就是微软的妒忌心理以及小人心理。当然,这仅仅是微软丑闻中的一个罢了。其DX和OpenGL委员会之间还有更大的丑闻呢,呵呵呵呵呵呵⋯⋯

Against All Microsoft
Against All 瘟抖死!
[/Quote]

傻逼,还“瘟抖死”。。。MS C++是个C++编译器,干嘛要去遵守C的标准,而且windows内核开发有一款支持C89的编译器就足够了。
zenny_chen 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 frankhb1989 的回复:]

微软对C99一直没什么兴趣……
[/Quote]
你知道为何微软对C99一直没兴趣?呵呵呵呵呵⋯⋯
因为C语言标准委员会中几乎就没有微软的人,取而代之的是GNU C编译器制作组的占多数,所以C99很多语法扩展都参考了GNU C Compiler对C语言的扩展。
微软从比尔大门开始起就鄙视开源,鄙视GNU!所以它当然不会去遵守C99标准。这就是微软的妒忌心理以及小人心理。当然,这仅仅是微软丑闻中的一个罢了。其DX和OpenGL委员会之间还有更大的丑闻呢,呵呵呵呵呵呵⋯⋯

Against All Microsoft
Against All 瘟抖死!
zenny_chen 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bluewanderer 的回复:]

ICC可以在2010上用
但是ICC在VS2010上用会关闭部分VS不支持的C99语法,比如符合常量,报告完毕...
[/Quote]
你那报告的啥玩艺儿,呵呵。
你使用ICPC时必须自己在语言选项中开启C99标准,默认情况下是C89。
FrankHB1989 2010-11-27
  • 打赏
  • 举报
回复
微软对C99一直没什么兴趣……
bluewanderer 2010-11-27
  • 打赏
  • 举报
回复
ICC可以在2010上用
但是ICC在VS2010上用会关闭部分VS不支持的C99语法,比如符合常量,报告完毕...
CandPointer 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zenny_chen 的回复:]

给楼主最好的解决方案:

安装Visual Studio以后,再安装Intel C++ Compiler,这个编译器能集成到VS环境中。
然后你把编译器切换到ICC中使用。这样你微软的其它库能用,并且又能用VS环境,而且又支持C99,呵呵。很爽!
[/Quote]

现在的版本,我用的是 Visual Studio + Intel(R) C++ Compiler Professional Edition 11.1
自动集成到Visual studio 环境中,好像最高只能到VS 2008.。。

有没有办法集成到VS 2010?
zenny_chen 2010-11-27
  • 打赏
  • 举报
回复
给楼主最好的解决方案:

安装Visual Studio以后,再安装Intel C++ Compiler,这个编译器能集成到VS环境中。
然后你把编译器切换到ICC中使用。这样你微软的其它库能用,并且又能用VS环境,而且又支持C99,呵呵。很爽!
zenny_chen 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luciferisnotsatan 的回复:]

引用 2 楼 ouyh12345 的回复:

没有一个编译器能完全支持c99

正解
[/Quote]
正解个P!
楼主要解决变长数组问题。现在很多编译器都能支持。应该说在基于桌面操作系统的编译器中除了VC不支持外,其它编译器都支持,呵呵呵呵呵呵……
luciferisnotsatan 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ouyh12345 的回复:]

没有一个编译器能完全支持c99
[/Quote]
正解
CandPointer 2010-11-27
  • 打赏
  • 举报
回复
Intel C++ compiler 11.1

支持C99

代码,可以针对c99写特定的代码

#if __STDC_VERSION__ < 199901L
//c89的代码
#else
//c99的代码
#endif
gules 2010-11-27
  • 打赏
  • 举报
回复
用GCC试试,加上-std=C99
jeff_nie 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ouyh12345 的回复:]
没有一个编译器能完全支持c99
[/Quote]
是的,不过我很纳闷:(
ouyh12345 2010-11-27
  • 打赏
  • 举报
回复
没有一个编译器能完全支持c99
無_1024 2010-11-27
  • 打赏
  • 举报
回复
不管在哪个编译器里面都不能运行
因为
int arr[a][b];
这种表示是错误的 数组未知的初始化
VC6.0也不行
VS2008 也不可以

69,336

社区成员

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

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