Home Dashboard Directory Help

C99 Support by agottem


 as By Design Help for as By Design

Sign in
to vote
Type: Suggestion
ID: 526116
Opened: 1/20/2010 12:51:56 PM
Access Restriction: Public


I would like to see C99 support available in Visual Studio. The amount of work to add C99 support should pale in comparison to C++0x.

As the compiler for the dominant PC platform, Microsoft should really try harder to implement a standard that's over 10 years old -- especially because the C community is arguably larger than the C# or C++ community.

Sign in to post a comment.
Posted by Alan J. McFarlane on 10/22/2011 at 5:15 AM
Could you please consider just doing the 'variable declarations at top of block' issue. That would fix 99% of the issues I had when compiling others' code.
Posted by BluePlateSpecial on 9/18/2011 at 7:56 AM
How about this idea. This may not work for all C99 features, but I think it is worth considering. How about adding a refactor command that goes through the current scope and looks for errors that are indicative of variable declarations placed after code (i.e. not at the beginning of the scope). Then see if the line the error occurred on matches that of a variable declaration production rule, and if so move it to the top of the scope, just after the other variable declarations. Do this for all variable declarations that are placed after code, respecting their order so dependencies don't become an issue. The reason for this is because, if the VS team doesn't have the time to fully support the new features, maybe they have a few hours/days to add refactor options to attempt to convert C99 code found online or wherever to something they do support, so users can run the code locally. The general idea is not to modify the lexer to find these unsupported features (as that may take too long), but to examine the error messages and match the line(s) with existing production rules to see if we have an unsupported feature. Then to move things around to something it does support.
Posted by Microsoft on 1/22/2010 at 9:33 AM
Unfortunately 1) There are many, many more users of the Microsoft C++ compiler than there are of the C compiler; 2) Anytime we do customers discussion and/or solicit feedback the overwhelming response is that we should focus on C++ (especially at the moment C++-0x); 3) We just don't have the resources to do everything we would like. So while we are slowly improving our C-99 support (and we are active in the C-1x discussions) I can't promise we'll add any of these features.

Jonathan Caves
Visual C++ Compiler Team
Posted by gibbyk on 1/21/2010 at 8:34 AM
We failed to port a large C99 project to VC due to lack of C99 support. The standard has been out for 10 years, why does MS not support this yet while it's competitors are?
Posted by Microsoft on 1/20/2010 at 8:27 PM
Thank you for your feedback, We are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Posted by BLoggins02 on 1/20/2010 at 2:06 PM
Agreed, Microsoft's lack of support for even the most common C99 features (like being able to declare variables anywhere within a block) is unacceptable.

I know you want .NET to take over the world and everything, but please respect existing C developers, especially ones who would like to port Linux applications to your platform without isntalling MinGW or Cygwin!
Sign in to post a workaround.
Posted by daviangel on 1/14/2011 at 5:37 AM
Actually Sun Studio and IBM Rational Logiscope are the only one's to offer full C99 support AFAICT.
Posted by John Almon on 4/23/2010 at 9:20 AM
Use the Intel compiler