jacob navia <ja***@jacob.re mcomp.frwrites:
[...]
The people that told you that standard C is "rejected" here are speaking
for themselves. The current standard is C99, and that standard makes
older standards obsolete.
There is a group of people here that think that C should be as
backward looking as possible, they reject C99 want to come to 1989
and maybe even earlier.
Who cares?
The current standard is C99.
[...]
Unfortunately, that's not realistic.
It is a fact that most C compilers implement the (officially obsolete)
C90 standard. It is also a fact, unfortunately, that most C compilers
do *not* yet fully implement the (now official) C99 standard.
I will note that jacob's own lcc-win32 compiler fails to implement
some features of C99. You can write conforming C99 code all you like,
but if you happen to use those features, lcc-win32 will reject it, as
will most other C compilers that you're likely to able to use. If you
want to write conforming C code as an academic exercise, feel free to
do so. If you happen to have one of the few implementations that
fully implements the C99 standard, and you're not concerned with
portability to other implementations , that's great. If you want to be
able to compile your code on as many systems as possible, I'm afraid
you're going to avoid those features of C99 that are not already in
C90.
Few, if any, posters here have said that the C language *should* be
restricted to the C90 standard. That is a distortion on jacob's part;
I can only assume that it's a deliberate one.
Many of us, myself included, have simply acknowledged the reality that
code that uses C99 features *is not portable*. Ignoring that fact is
foolish. I look forward eagerly to the day when all C implementations
(gcc, lcc-win32, Microsoft, etc.) fully support C99, but there is no
virtue in pretending that that day has already arrived. The only way
that's going to happen is if the *implementers* make it happen; as
programmers, there's not a whole lot we can do about it (other than
applying whatever pressure we can on the implementers).
Note that C99 is very nearly a superset of C90. If you write code in
the common subset of the two versions of the language (that basically
means writing conforming C90 code while avoiding the new C99
keywords), then you'll have code that is valid C99, and that any
future compiler, whether it conforms to C99 or not, will be able to
handle.
jacob, if you believe that C90 is "obsolete", why does your own
lcc-win32 compiler not fully support the current standard, seven years
after it was issued? I understand that it's a lot of work, and I'm
honestly not criticizing you for not having done it yet. But given
that fact, I'm bewildered by your insistence on ignoring C90.
C90 is *officially* obsolete, according to ISO. C99, and only C99, is
currently the *official* C standard, according to ISO. I truly wish
that those offical statements were better reflected in reality, but
they are not.
--
Keith Thompson (The_Other_Keit h)
ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.