C Reference
Warning: the documents below are not light reading, and, in some cases, are not light. Do not print unless you really want your own copy (and arm-ache).
The International Standards Organisation (ISO) does not publish its standards freely: it needs to make money! However, draft standards are sometimes available, and can be very close to the Real Thing.
The C ISO standard is called ISO/IEC 9899 and is produced by WG14. The web site of WG14 contains various useful documents. Note that the draft documents are almost (but not quite) identical to the final ISO document, the differences usually being little more than the cover page.
Useful documents which are available on that site and also cached below include:
- C23 Draft Standard
- C17 Draft Standard, well not quite. Actually a very early C23 draft with change marks from which one can readily reconstruct the C17 Standard
- C11 Draft Standard
- C99 Draft Standard
Cambridge users might also be able to browse the BSI website, via our institutional login, and search for ISO/IEC 9899 which is the current C standard.
ANSI C89 (and the almost identical ISO C90 when C moved from the American National Standards Insitute to the International Standards Organisation) are not readily found in PDF format. The best electronic form I can find is this single page html document: C89 draft and C89 draft (locally cached). Note that the C89 and C90 standards do differ in their section numbering, and C89 paragraph 3.5.7 has "a list" whereas C90 6.5.7 has "a brace-enclosed list".
C was first standardised in 1989, but the language appeared in the early 1970s and for a long while the definitive reference was Kernighan and Ritchies's book "The C Programming Language" (published in 1978). So-called K&R C should not be used. Where is differs from "ANSI C" (i.e. C89), C89 is much superior.
Many compilers come / came with reasonable reference works too. Some of these can currently be found in
/rscratch/Compilers/docs/
Finally, a blog which often mentions the C and C++ standardisation process (from a member of WG14).