The Current C Programming Language Standard – ISO/IEC 9899:2018 (C18)

Blue wave graphic representing the current C standard, ISO/IEC 9899:2018.

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.

Share this blog post:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.