How can I tell Visual Studio/Microsoft's C compiler to allow variable declarations after the first statement?

前端 未结 3 1247
感动是毒
感动是毒 2021-01-17 09:09

I have code that compiles on the GNUARM compiler, but Visual Studio 2010 issues errors. The issue involves declaring variables after the first statement in a C language file

相关标签:
3条回答
  • 2021-01-17 09:40

    You don't. Visual C++ does not support C99.

    You'll need to compile as C++ (and update your code accordingly) or follow the rules of C89.

    (I don't know what errors you get when compiling with /TP; I can compile your example successfully with /TP if I add #include <stdlib.h> for EXIT_SUCCESS; if you provide more details, I or someone else may be able to help.)

    0 讨论(0)
  • 2021-01-17 09:40

    I made the same test with the default Visual Studio 2010 project, with the C file and /TP switch, and got the precompiled headers error. It can be removed by renaming stdafx.cpp to stdafx.c, or disabling precompiled headers for the whole project or for specific C files.

    I didn't find any other problems. However, this effectively converts C language to C++, which is not your intention, I think. C allows, however, to define a variable in the beginning of every {} block.

    0 讨论(0)
  • 2021-01-17 09:42

    As of Visual Studio 2013, the Visual C++ compiler supports C99 style variable declarations. More details can be found in:

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

    0 讨论(0)
提交回复
热议问题