The current standard for the programming language C is ISO/IEC 9899:2018 – Information technology – Programming languages – C.
ISO/IEC 9899:2018, or C18, is a revision of ISO/IEC 9899:2011, or C11. While it contains no major changes from the previous edition of the C programming language standard, is does feature some technical corrections and clarifications that repair issues reported for C11.
Today, C is one of the most popular programming languages used worldwide for operating systems, network drivers, databases, language interpreters, and utilities, as well as a variety of other purposes.
While it originated in the ‘70s, the existing practices of C were unified and expanded upon in the standard ANSI X3.159-1989, or C89. Because of these origins, many people still call the C programming language standard ANSI C. However, the C standard was adopted internationally in 1990, and it has long been ISO/IEC 9899, which is developed by ISO/IEC JTC 1. The integration of C practices into an international standard sparked its attachment with the name ISO C.
ISO/IEC 9899:2018 specifies the form and establishes the interpretation of programs written in the C programming language. As stated in its scope, it specifies:
- The representation of C in programs
- The syntax and constraints of the C language
- The semantic rules for interpreting C programs
- The representation of input data to be processed by C programs
- The representation of output data processed by C programs
- The restrictions and limits imposed by a conforming implementation of C
Please note, however, that ISO/IEC 9899:2018 does not specify the mechanisms by which C programs are transformed for use by a data-processing system, C programs are invoked for use by a data-processing system, input data are transformed for use by a C program, or output data are transformed after being produced by a C program. It also doesn’t address the size or complexity of a program and its data that will exceed the capacity of any specific data-processing system, nor does it cover all minimal requirements of a data-processing system that is capable of supporting a conforming implementation.
The ISO/IEC 9899:2018 document is divided into four major subdivisions: preliminary elements (found in Clauses 1-4), the characteristics of environments that translate and execute C programs (Clause 5), the language syntax, constraints, and semantics (Clause 6), and the library facilities (Clause 7). Users should note that, since ISO/IEC 9899 undergoes periodic revision, new features could be added to or withdrawn from the document. Therefore, certain uses could conflict with future editions.
ISO/IEC 9899:2018 – Information technology – Programming languages – C is available on the ANSI Webstore.