如何在Visual Studio中"模拟"C99以进行变量声明

ean*_*ang 11 c c99 c89 visual-studio-2012

我正在使用Visual Studio 2012开发简单的Win32 C程序.我知道VS编译器只支持C89,但我想知道是否有办法覆盖这个限制.

特别是我想在我的代码中的任何地方声明变量,而不是仅在范围块的开头声明(如C89所要求的).

提前致谢.

Chr*_*oph 13

我看到的选择:

  • 坚持使用MSVC并切换到C++
  • 坚持使用MSVC并使用预编译器将C99转换为C90(Comeau,c99-to-c89)
  • 切换到支持C语言最新版本的工具链(Intel,MinGW,Clang,Pelles-C,...)

  • 请注意,从MSVC2013开始,此答案不再正确. (6认同)

小智 8

这看起来像是一个过时的线程,但是当我在寻找相同的问题时首先登陆这里,我认为我应该发布更新:

从VS13开始,Visual C++编译器支持C99样式变量声明.更多细节在这里:

http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl-features-fixes-and-breaking-changes-in-vs-2013.aspx