Jump to: navigation, search

Introduction

This page describes the International Standard that defines the C programming language as a guide to those who are new to either. It's based on what a newcomer to comp.lang.c would find useful to know about the Standard without getting specific about the contents and scope of the Standard. See also questions 11.1, 11.2 and 11.2b of the FAQ.

Origins of the C Standard

Prior to ANSI and ISO standardisation, C was unofficially standardised around "The C Programming Language", by Brian Kernighan and Dennis Ritchie (Prentice Hall, 1978). This unofficial C Standard is commonly referred to as K&R, although whether it can be considered to be purely based on the specification within this book (Appendix A of Edition 1) is not clear: actual implementations did not accurately follow the specifications of Appendix A - there were several generally accepted changes and some considered the AT&T reference manual to be more authoritative - hence the need for an official standard (the previous sentence is based on a comp.std.c post, 2 Nov 2005, by Douglas Gwyn).

The Committee (WG14)

The ISO Working Group that currently manages the Standard is known as WG14. Much documentation is available through their website.

Versions

The Standard has been through several versions, starting with ISO/IEC 9899:1990 (commonly referred to as C89 or C90) and ISO/IEC 9899:1999 (commonly referred to as C99). As the naming indicates, C99 was ratified in 1999 and supersedes C89/C90, which was ratified in 1990.

C89/C90 and C99 are ISO standards, however C89/C90 was originally ratified by ANSI as X3.159-1989. The ANSI and ISO C89/C90 Standards are technically equivalent, but the section numbering of the Standard differs in its ANSI and ISO forms.

Since then, there have been C11, C17, and C23, and the next is being worked on as "C2y".

Drafts

Drafts of the Standard are circulated for comment prior to ratification and publication. The drafts, whilst useful, are not always definitive: the official versions of the Standard do differ from the draft versions although not dramatically.

Rationale

Each version of the Standard has a freely available rationale describing the intent of its authors and other helpful background.

Corrections and updates

Each version of the Standard has corrections and updates in the form of amendments and technical corrigenda, detailed on the WG14 homepage.

The proposals of amendments, or requests for clarification, on the Standard, formerly known as Defect Reports (DRs), are now known as change and clarification requests.

Shortcut link for Usenet posting

The page c standard redirects here, so a convenient short url for posting to Usenet is: http://clc-wiki.net/wiki/c_standard (the "c" in c_standard can optionally be capitalised).

Personal tools