How to develop C with Visual Studio 2010?

Is there a way to develop pure ANSI C with Visual Studio 2010?

Answers


Yes, it's possible. MSDN provides some information here: ANSI C Compliance.

Step one is setting the compiler to produce C code, rather than C++ code. Do that from your project's Properties. Expand the C/C++ header, and click on "Advanced". Set the "Compile As" property to "Compile as C Code" (this is the same as specifying the /TC switch on the command line). Even easier is to just name your files with a *.c extension.

Step two is disabling Microsoft's extensions to the ANSI standards. These are governed by the /Za and /Ze compiler switches. You can find these in your project's Properties, as well. /Za causes the compiler to emit an error for language constructs that are not compliant with the ANSI standard. The /Ze switch enables Microsoft-specific extensions; you want to make sure that this one is turned off.

Although I don't believe that Microsoft fully supports the C99 standard. See (and vote for!) this bug report on MS Connect, this blog entry from the VC++ team, and this page for a concrete example of where that lack of support becomes evident. It does, however, have full support for the C90 standard.


Via changing the file extension to .c will get you started but here are also some changes to the project file. See here for details: http://support.microsoft.com/kb/829488/en-us

There is also a good podcast on that: http://channel9.msdn.com/Blogs/Sam/C-Language-Programming-with-Visual-Studio-2010-Ultimate-Pro-or-VC-Express


Need Your Help

Simple_form how to make accept terms checkbox inline

html css ruby-on-rails twitter-bootstrap simple-form

<p><%= f.input :terms, :as => :boolean, :label => false, :boolean_style => :inline %>

How to use tools:overrideLibrary with multiple libraries

android android-studio android-gradle

I would like to create an Android project that is compatible to e.g. API level 4 but would still like to test it with UiAutomator that requires API level 18 on newer devices. So the app would also ...