Mark McIntyre said:
Liar yourself.
POI: MSVC supports 99% of C99, because C99 is largely the same as C89.
Then perhaps your familiarity with MSVC is on a par with your
familiarity with being rational and truthful in your posts?
I suggest that this is at least partly an honest miscommunication.
Yes, most of C99 consists of features that were present in C89/C90,
so a conforming C90 compiler does support most of C99 (I wouldn't
say it's 99%, but I'm not going to argue over the exact numbers).
On the other hand, when we say that a compiler supports C99, or
supports X% of C99, we usually mean that it supports (or supports X%
of) the features of C99 that aren't in C90.
jacob's use of the word "lie" is, as usual, inexcusably rude, but
apart from that he has a valid point.
My understanding is that MSVC has good support for C90, and very
little support for any C99 features that aren't in C90 (apparently //
comments and long long are exceptions to that). I haven't used MSVC,
so my understanding could well be incorrect.
You've done a survey have you? As compared to say, the ISO committees
which contains representatives of all the major compiler and most of
the major user groups.
I totally agree. However few companies are likely to want to spend
money rewriting code that works just to please a few language
fanatics. There's no money in it.
Companies can continue to use their existing compilers; the release of
the C99 standard certainly hasn't prevented anyone from using C90
compilers. And given that gets() has been in the language since time
immemorial, even conforming C201X compilers are likely to provide a
mode in which it's supported. Failing that, it's easy enough to
implement it yourself. Changing compilers will require changes to the
build process, and possibly to the code, anyway; working around any
lack of support for gets() shouldn't be especially burdensome. (And
hopefully companies will use this as an opportunity to stop using
gets() anyway.)
In my opinion, there has been ample warning that gets() should not be
used and might be removed from the language. I fully support removing
it from the language for the C201X standard. (But I'm not at all
concerned that this hasn't happened in the two *extremely* preliminary
201X drafts that have been released so far; there's no real reason to
do this before doing other work.)