HOME

TheInfoList



OR:

C17 is the informal name for ISO/IEC 9899:2018, the most recent
standard Standard may refer to: Symbols * Colours, standards and guidons, kinds of military signs * Standard (emblem), a type of a large symbol or emblem used for identification Norms, conventions or requirements * Standard (metrology), an object ...
for the
C programming language ''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well a ...
, prepared in 2017 and published in June 2018. It replaced C11 (standard ISO/IEC 9899:2011). C17 will be superseded by
C2x C2x is an informal name for the next (after C17) major C language standard revision. It is expected to be voted on in 2023 and would therefore become C23. The most recent publicly available draft of C23 was released on January 24, 2023. The f ...
. Since it was under development in 2017, and officially published in 2018, C17 is also commonly referred to as C18. GCC, for example, treats the commands -std=c17 and -std=c18 as equivalent, and the C-Standard page on the ISO-9899 wiki refers to ISO/IEC 9899:2018 as C18, only noting later that the standard is sometimes called C17.


Changes from C11

C17 addressed defects in C11 without introducing new language features. The __STDC_VERSION__ macro is increased to the value 201710L. For a detailed list of changes from the previous standard, see ''Clarification Request Summary for C11''.


Compiler support

List of compilers supporting C17: * GCC 8.1.0 *
LLVM LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate represe ...
Clang Clang is a compiler front end for the C, C++, Objective-C, and Objective-C++ programming languages, as well as the OpenMP, OpenCL, RenderScript, CUDA, and HIP frameworks. It acts as a drop-in replacement for the GNU Compiler Collection (GCC) ...
7.0.0 * IAR EWARM v8.40.1 * Microsoft Visual C++ VS 2019 (16.8)


See also

*
C++98 C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significa ...
,
C++03 C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "C" ...
, C++11,
C++14 C++14 is a version of the ISO/ IEC 14882 standard for the C++ programming language. It is intended to be a small extension over C++11, featuring mainly bug fixes and small improvements, and was replaced by C++17. Its approval was announced on Aug ...
,
C++17 C++17 is a version of the ISO/ IEC 14882 standard for the C++ programming language. C++17 replaced the prior version of the C++ standard, called C++14, and was later replaced by C++20. History Before the C++ Standards Committee fixed a 3-year r ...
, C++20 – versions of the C++ programming language standard *
Compatibility of C and C++ The C and C++ programming languages are closely related but have many significant differences. C++ began as a fork of an early, pre-standardized C, and was designed to be mostly source-and-link compatible with C compilers of the time. Due to th ...


References


External links


N2176
archived final draft of the standard * {{ISO standards C (programming language) Programming language standards IEC standards ISO standards