
Removal of the gets function (in favor of safer fgets), which was deprecated in the previous C language standard revision, ISO/IEC 9899:1999/Cor.3:2007(E). Improved Unicode support based on the C Unicode Technical Report ISO/IEC TR 19769:2004 ( char16_t and char32_t types for storing UTF-16/ UTF-32 encoded data, including conversion functions in and the corresponding u and U string literal prefixes, as well as the u8 prefix for UTF-8 encoded literals). Multi-threading support ( _Thread_local storage-class specifier, header including thread creation/management functions, mutex, condition variable and thread-specific storage functionality, as well as for atomic operations supporting the C11 memory model). #define cbrt(x) _Generic((x), long double: cbrtl, \ default: cbrt, \ float: cbrtf)(x) Some features of C11 are supported by the GCC starting with version 4.6, Clang starting with version 3.1, IBM XL C starting with version 12.1, and Microsoft Visual C++ starting with VS 2019 (16.8) in September 2020. Ansi c standard pdf iso#
The new standard passed its final draft review on Octoand was officially ratified by ISO and published as ISO/IEC 9899:2011 on December 8, 2011, with no comments requiring resolution by participating national bodies.Ī standard macro _STDC_VERSION_ is defined with value 201112L to indicate that C11 support is available. The final draft, N1570, was published in April 2011. Due to delayed availability of conforming C99 implementations, C11 makes certain features optional, to make it easier to comply with the core language standard. C11 mainly standardizes features already supported by common contemporary compilers, and includes a detailed memory model to better support multiple threads of execution.
It replaced C99 (standard ISO/IEC 9899:1999) and has been superseded by C17 (standard ISO/IEC 9899:2018). C11 (formerly C1X) is an informal name for ISO/IEC 9899:2011, a past standard for the C programming language.