View Single Post
Old 16th April 2011
TerryP's Avatar
TerryP TerryP is offline
Arp Constable
 
Join Date: May 2008
Location: USofA
Posts: 1,547
Default

Quote:
Originally Posted by Oko View Post
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.
__________________
My Journal

Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''.
Reply With Quote