I asked if MS has any plans to support C99 in the next VisualC. This is
their answer.
I think we should whine more
We feel that C++ addresses this space
sufficiently. In general we have no plans to add any C99 features that
duplicate functionality in C++ or conflict with it.
That also matches the feedback we have gotten from customers. In fact the
non interest in C99 is the clearest feedback I have seen of any issue. The
ratio of customers who don't want us to prioritize C99 features versus those
who do is definitely higher than 100:1.
They have planned "restrict" BTW, the one feature I like the least.
Despite what some other responses in this thread claim, MSVC++, at
least through version 6, is quite a good C95 implementation.
In addition to lcc-win32's steady progress toward full C99 conformance
(thank you very sincerely, Jacob, I am one of your biggest fans), and
Comeau's front end for various back ends, there does seem to be some
promise from a major Windows compiler vendor, namely Borland.
Their recently announced cross-platform C++ BuilderX is supposed to
eventually come with a brand new optimizing compiler with top priority
given to full ISO C++ and C99 conformance, although the C99 is far
less mentioned on their web site than C++.
The real issue, as Microsoft puts it, is putting their priority, and
development effort, on what the majority of their customers want.
There are very few "small" Windows applications anymore, and C is not
the primary language of choice for large GUI applications in desktop
environments these days.
The major stronghold of C today is in embedded systems, where in the
last 10 to 15 years it has totally outstripped hand coded assembly
language.
The vast majority of embedded systems coded in C are implemented with
smaller 8 or 16 bit microprocessors and microcontrollers. These
people do not want or need many of the new C99 features, such as
variable length arrays or the long long data type. In fact although
all of these compilers call themselves "ANSI C", it usually means that
they allow function prototypes. Many don't implement floating point
at all or provide nothing wider than a 32-bit IEEE single precision
type, so they are not even conforming free-standing implementations.
There is some hope on the higher end 32-bit systems. Several
compilers were adding C99 features. Although I am a few versions and
a few years behind the latest, CodeWarrior and ARM's compilers were
adding C99 features steadily with each release the last time I looked.
--
Jack Klein
Home:
http://JK-Technology.Com
FAQs for
comp.lang.c
http://www.eskimo.com/~scs/C-faq/top.html
comp.lang.c++
http://www.parashift.com/c++-faq-lite/
alt.comp.lang.learn.c-c++ ftp://snurse-l.org/pub/acllc-c++/faq