Thread: VS2005 Professional & designated initializers

  1. #1
    Registered User
    Join Date
    May 2007
    Posts
    21

    VS2005 Professional & designated initializers

    I use Visual Studio 2005 Professional in my leaning of the C language. I find it very unsettling that VS2005 Pro is not C99 compatible. A good example, why can I not use designated array initialization? Doesnt VS2005 Pro have any C99 features implemented, and if so, where do I find the list of what is "implemented" in VS2005 Pro when it comes to C99?

    I have experienced the same with CodeWarrior

    I have heard that the Comeau compiler is more of less the only compiler supporting C99; can someone using this confirm this? I don't understand why C99 was approved as a standard if compiler vendors ignore the new advantages of C99 in the first place -- doesn't that defeat the purpose of C99 if compiler don't support it?

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,656
    I believe that there is some statement on MSDN that no Microdog compiler will ever support C99.

    Several compilers do (or are at least getting there). M$ has made a commercial decision not to try to support it, others take a different view.

    Now you as a consumer need to make an informed choice as to whether you can live with C89 and all the toys VS2005 provides, or try to integrate the IDE with a foreign compiler.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  3. #3
    Registered User
    Join Date
    May 2007
    Posts
    21
    Quote Originally Posted by Salem View Post
    I believe that there is some statement on MSDN that no Microdog compiler will ever support C99.

    Several compilers do (or are at least getting there). M$ has made a commercial decision not to try to support it, others take a different view.

    Now you as a consumer need to make an informed choice as to whether you can live with C89 and all the toys VS2005 provides, or try to integrate the IDE with a foreign compiler.
    Well ... thats the thing; I want C99 support and knew that VS2005 Pro was not "up-to-date" but did not know a commercial decision had been made not to support it, at all!

  4. #4
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    As far as I know, GCC has reasonably good C99 support. http://gcc.gnu.org/c99status.html

    You can use ports of GCC with many IDEs, such as Dev-C++ and Code::Blocks.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  5. #5
    Registered User
    Join Date
    May 2007
    Posts
    21
    Quote Originally Posted by dwks View Post
    As far as I know, GCC has reasonably good C99 support. http://gcc.gnu.org/c99status.html

    You can use ports of GCC with many IDEs, such as Dev-C++ and Code::Blocks.
    Yes, that is a nice link; I used to use the Bloodshed environment in the past -- then, being naive, I invested in the VS2005 Pro in the belief that it would someday be C99 compatible. Apparently, this is not the case.

    For specific C99 needs, this offers the most support (moreso than GCC) http://www.comeaucomputing.com/

    more info here: http://www.comeaucomputing.com/techtalk/c99/
    Last edited by Hansie; 05-24-2007 at 03:00 PM.

  6. #6
    Registered User
    Join Date
    Sep 2006
    Posts
    8,868
    Quote Originally Posted by Salem View Post
    I believe that there is some statement on MSDN that no Microdog compiler will ever support C99.

    Several compilers do (or are at least getting there). M$ has made a commercial decision not to try to support it, others take a different view.

    Now you as a consumer need to make an informed choice as to whether you can live with C89 and all the toys VS2005 provides, or try to integrate the IDE with a foreign compiler.
    That's disconcerting to read!

    You'd think that MS would be chomping at the bit to be the first one's able to say "fully compliant with C99", or whatever the current standard is. With their obvious resources, that should be easily done, and a real selling point for their compiler.

    Did anyone hear WHY they decided not to support the standard?

  7. #7
    Registered User
    Join Date
    May 2007
    Posts
    21
    Quote Originally Posted by Adak View Post
    That's disconcerting to read!

    You'd think that MS would be chomping at the bit to be the first one's able to say "fully compliant with C99", or whatever the current standard is. With their obvious resources, that should be easily done, and a real selling point for their compiler.

    Did anyone hear WHY they decided not to support the standard?
    compiler providers -- including Microsoft -- dont seem to be willing to put in the effort to support C99 because (a) too few people need the C99 features and (b) too few use ANSI C compared to C++

    That is the common feedback from compiler providers; but of course C99 will not gain popularity if nobody is able to create code to support it! It's stupidity from the compiler providers -- they are part of the reason C99 will never take off since they dont implement the C99 features in the first place!

  8. #8
    Registered User
    Join Date
    Sep 2006
    Posts
    835
    They probably feel that anyone writing code from scratch can use C++, and anyone maintaining or building on legacy C code can continue to use C89 since that's the code they already have.

  9. #9
    Registered User
    Join Date
    May 2007
    Posts
    21
    Quote Originally Posted by robatino View Post
    They probably feel that anyone writing code from scratch can use C++, and anyone maintaining or building on legacy C code can continue to use C89 since that's the code they already have.
    I agree that this is how the compiler vendors might feel; but for embedded controllers -- which I am writing (learning to develop) software for -- C++ is not an option. memory limitations, speed limitations etc. enforce the use of compact "C".

  10. #10
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    : how long could it take for c99 to arrive on major compilers?

    Hum... Well, imho, C99 won't do it. Microsoft and Borland have either said that they won't support C99 on their compilers. The only major compiler that I know that already supports C99 is GCC. There is many resistance against C99 because it made standard C incompatible with C++.
    From http://www.programmersheaven.com/mb/...admessage.aspx

    No, VC does not support C99 and probably won't for quite some time to come. There's support for a couple of C99 things (including for C++ mode), such as "long long", variadic macros, __restrict (which works like restrict), __FUNC* identifiers, __pragma (which is similar to _Pragma).
    http://forums.microsoft.com/MSDN/Sho...50808&SiteID=1

    Also see several posts here: http://forums.microsoft.com/MSDN/Sho...59043&SiteID=1

    I can't seem to find the actual page where Microsoft explains its lack of C99 support, however.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  11. #11
    Its hard... But im here swgh's Avatar
    Join Date
    Apr 2005
    Location
    England
    Posts
    1,688
    Either that or its some sort of ploy to phase C out... Never happen as C is the mother language to C++ and C#.
    Double Helix STL

  12. #12
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,656
    But if you're writing for an embedded target, you're not going to be able to use the output of the visual studio compiler anyway.

    If you're going to use a gcc port for your actual target (which has some C99 support), you may as well use a gcc win32 port for your host development and testing.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  13. #13
    Registered User
    Join Date
    May 2007
    Posts
    21
    You are correct; but in my learning process to learn C I use VS2005 Pro. I have the KEIL compiler for the "real" work once I learn the ropes around C

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Small code works on VS6 crash on VS2005 WHY???
    By salvadoravi in forum C Programming
    Replies: 7
    Last Post: 02-10-2008, 09:32 AM
  2. This application failed to start... VS2005
    By Syneris in forum Windows Programming
    Replies: 3
    Last Post: 02-02-2006, 11:47 AM
  3. Replies: 3
    Last Post: 07-07-2004, 11:55 PM
  4. Need a professional
    By JaWiB in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 12-07-2003, 05:20 PM
  5. Win xp professional or professional cowpat
    By Stoned_Coder in forum A Brief History of Cprogramming.com
    Replies: 16
    Last Post: 12-20-2001, 11:22 AM