Because almost no one has adopted it. C99 maybe a standard in name,
but it's not functioning as one.
By "no-one" do you mean vendors or programmers? Obviously you need a
handful of vendors to support it first so that tools are available. But
then, I think it is responsibility of the programmers to adopt the new
standard *IF* the new features are going to make their jobs easier and they
can build the software for the targets they need. It is the latter point
that is the stumbling block so far, IMHO.
I have source code that requires a C99 compiler. I wanted to use this code
again in a different project. I had to rewrite it when we wanted to compile
it with gcc (2.96 in -ansi -pedantic mode - forced by requirements of the
project). I'd have been better off writing it in "old C".
From what I recall of the early 1990s, tools such as ansi2knr
(
http://www.cs.wisc.edu/~ghost/index.html) could be used to compile C89 code
in K&R C compilers. On some platforms, I'm still using cfront to compile
old C++ code in a C89 compiler, although it's pretty much useless for
anything written later than the mid 1990s.
Are there any tools available which can convert C99 source code into code
that can be compiled by a compiler compliant to the pre-C99 standard? If
there are, and they are freely available, in source form (so they can be
build for "any platform"), then I believe take-up would be much faster as it
removes the obstacle of compatibility.