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 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 repre ...
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 ...
7.0.0
*
IAR IAR may refer to:
* IAR Systems, an embedded system technology company
*The Institute of Asian Research, an institute under the Faculty of Arts in the University of British Columbia, Vancouver, BC, Canada
*" Ignore all rules", a policy on Wikipedia ...
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 tr ...
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
The Ruy Lopez (; ), also called the Spanish ...
,
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 versio ...
,
C++14
C14, C.XIV or C-14 may be:
* Autovía C-14, a highway in Catalonia in Spain
* Fokker C.XIV, a 1937 Dutch reconnaissance seaplane
* , a 1908 British C-class submarine
* LSWR C14 class, a London and South Western Railway locomotive
* Ramal C-14, th ...
,
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-yea ...
,
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 ...
– 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