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

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

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

提前致谢。

我看到的选择:

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

这似乎是一个过时的线程,但在我搜索相同的问题时首先登陆这里,我认为我应该发布更新:

从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

使用C ++编译器构建您的应用程序。 这是最简单的方法。 您仍然可以编写C代码,只需将文件命名为* .cpp即可