2012-05-22 69 views
2

我正在使用VS 2010.我改变了编译器C代码而不是C++的设置。它工作正常,但问题是MS编译器不支持C99标准,因此我正在寻找一个可以与VS 10一起使用的C编译器。如何做到这一点?提前致谢。如何更改VS的编译器?

+0

你需要什么方面的C99? AFAIK的某些方面*在VS 2010编译器中实现。 – 0xC0000022L

+0

好吧,像'//','for(int i = 0; ..)'和'enum {A,B} char * foo [] = {[A] =“..”,[B] =“$ ..”};'(我有很多代码使用这个)。一旦我无法更改VS的默认编译器,该解决方案将迁移到真正支持C99的编译器,对吧? – Jack

回答

2

MS visual studio不支持c99,但是他们已经实现了c99的certain features

从这个Microsoft page,他们对C99支持回复:

问用户:

“我想看看在Visual Studio中提供C99支持的 量。与C++ 0x相比,添加C99支持的工作应该是苍白无力的。

作为主导PC平台的编译器,微软应该真的是 努力实现超过10年的标准 - 特别是因为C社区可以说比C#或 C++社区更大。“

微软的答复:

“不幸的是1)是微软C++ 编译器很多,许多用户数超过有C编译器; 2)任何时候我们做客户 讨论和/或征求反馈热烈的回应是,我们应该专注于C++(尤其是C++ - 0x); 3)我们只是 没有足够的资源去做我们想做的每件事,所以当我们 正在慢慢地改进我们的C-99支持(我们正在积极参与C-1x 讨论)我不能保证我们会添加任何这些功能。“

+0

但是我不能将MSC改为'gcc'例如,对吧? – Jack

+0

MSC支持所有的c89,但有限的c99功能。所以你不能那样做。否则,当您使用最新的gcc(c99或c11)功能时,可能会遇到问题。 –