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 th ...
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 as ...
, prepared in 2017 and published in June 2018. It replaced
C11 C11, C.XI, C-11 or C.11 may refer to:
Transport
* C-11 Fleetster, a 1920s American light transport aircraft for use of the United States Assistant Secretary of War
* Fokker C.XI, a 1935 Dutch reconnaissance seaplane
* LET C-11, a license-build var ...
(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 C11, C.XI, C-11 or C.11 may refer to:
Transport
* C-11 Fleetster, a 1920s American light transport aircraft for use of the United States Assistant Secretary of War
* Fokker C.XI, a 1935 Dutch reconnaissance seaplane
* LET C-11, a license-build var ...
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 represen ...
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++
Microsoft Visual C++ (MSVC) is a compiler for the C, C++ and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both tri ...
VS 2019 (16.8)
See also
*
C++98 C98 or C-98 may refer to:
* C-98 Clipper, the military designation of the Boeing 314 flying boat
* CJYC-FM, "Big John FM", formerly known as "C98"
* Cray C98, a model of the Cray C90
* Ruy Lopez (ECO code), a chess opening
* Lake Village Airport (F ...
,
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++11 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++11 replaced the prior version of the C++ standard, called C++03, and was later replaced by C++14. The name follows the tradition of naming language versions by ...
,
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 August ...
,
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 rel ...
,
C++20
C++20 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++20 replaced the prior version of the C++ standard, called C++17. The standard was technically finalized by WG21 at the meeting in Prague in February 2020, a ...
– 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 thi ...
References
External links
N2176 archived final draft of the standard
*
{{ISO standards
C (programming language)
Programming language standards
IEC standards
ISO standards