Quote:
Originally Posted by Oko
C99 mostly refers to a style (syntax parser) as opose to K-R style in which programs are written rather than anything more substantial.
|
I think you may be confusing the original ANSI standard with K&R1
.
The largest changes to C syntax were around the time of ANSI (~C89), pretty much function prototypes and the modern (everyone uses it) function definition syntax. I'm to young to recall when void replaced char but I've read plenty of old style pre-standard code.
C99 from a feature point of view, principally gives additional standard-issue types (long long, complex, etc), variable length arrays, macros that take variable arguments, and C++ like things: // comments, inline functions, and not having to declare variables at the start of a block. There was also a type generic version of the math library added, not that I have ever really needed the traditional math library either.
As someone who generally needs to write C code acceptable to both GCC and to Micro$oft's compiler, which is not C99 compliant: the only thing I miss is
stdint.h. For projects like OpenBSD however, such an issue is totally irrelevant. Some Open Source developers do exploit C99-specific features though, so a C99 compliant compiler can be useful for porting software.
The C99 standard is also a cool read.