The standard includes several changes to the C99 language and library specifications, such as6
The new revision allows implementations to not support certain parts of the standard — including some that had been mandatory to support in the 1999 revision.12 Programs can use predefined macros to determine whether an implementation supports a certain feature or not.
Some features of C11 are supported by the GCC starting with version 4.6,16 Clang starting with version 3.1,17 IBM XL C starting with version 12.1,18 and Microsoft Visual C++ starting with VS 2019 (16.8)19 in September 2020.
See also: C string handling § Replacements
The optional bounds-checking interfaces (Annex K) remain controversial and have not been widely implemented, and their deprecation or removal from the next standard revision has been proposed.20 Even Microsoft, a main proponent of this interface, does not conform to the definition.21 In addition, Annex K does not include the more useful TR24731-2 (dynamic allocation functions), such as vasprintf and open_memstream.22 The few open-source implementations include Open Watcom C/C++'s "Safer C" library23 and safeclib.24
"ISO/IEC 9899:2011 - Information technology -- Programming languages -- C". www.iso.org. https://www.iso.org/standard/57853.html ↩
"WG14 N1250 The C1X Charter" (PDF). http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1250.pdf ↩
"Subsetting the C Standard". www.open-std.org. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1460.htm ↩
WG14 N1570 Committee Draft — April 12, 2011 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf ↩
"Defect report #411". ISO/IEC JTC1/SC22/WG14 - C. February 2012. Retrieved 2012-05-04. http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_411.htm ↩
WG14 N1516 Committee Draft — October 4, 2010 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1516.pdf ↩
"Atomic operations library - cppreference.com". en.cppreference.com. http://en.cppreference.com/w/c/atomic ↩
"WG14 N1286 — "On Support for TR-19769 and New Character Types", Nick Stoughton, Larry Dwyer" (PDF). http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1286.pdf ↩
Berin Babcock-McConnell. "API02-C. Functions that read or write to or from an array should take an argument to specify the source or target size". https://www.securecoding.cert.org/confluence/display/c/API02-C.+Functions+that+read+or+write+to+or+from+an+array+should+take+an+argument+to+specify+the+source+or+target+size ↩
"Abandoning a Process". www.open-std.org. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1327.htm ↩
"Creation of complex value". www.open-std.org. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1464.htm ↩
WG14 N1548 Committee Draft — December 2, 2010 6.10.8.3 Conditional feature macros http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf ↩
ISO 9899:1999 6.10.8 Predefined macro names ↩
"WG14 N1558 Mar 14-18 meeting minutes (draft)" (PDF). http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1558.pdf ↩
ISO 9899:2011 Programming Languages - C 6.7.6.2 4 ↩
"GCC 4.6 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF)". gcc.gnu.org. https://gcc.gnu.org/gcc-4.6/changes.html#c ↩
"Clang 3.1 Release Notes". llvm.org. http://llvm.org/releases/3.1/docs/ClangReleaseNotes.html#cchanges ↩
"Support for ISO C11 added to IBM XL C/C++ compilers". www.ibm.com. 17 April 2014. http://www.ibm.com/developerworks/rational/library/support-iso-c11/index.html ↩
"C11 and C17 Standard Support Arriving in MSVC". devblogs.microsoft.com. 14 September 2020. https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/ ↩
"N1969 — Updated Field Experience With Annex K — Bounds Checking Interfaces". www.open-std.org. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1969.htm ↩
Leffler, Jonathan. "c - Do you use the TR 24731 'safe' functions?". Stack Overflow. https://stackoverflow.com/a/373911 ↩
"c - Do you use the TR 24731 'safe' functions?". Stack Overflow. https://stackoverflow.com/a/17353714 ↩
"Safer C Library - Open Watcom". 3 May 2015. Archived from the original on 2015-05-03. https://web.archive.org/web/20150503192244/http://openwatcom.org/index.php/Safer_C_Library ↩
"safec: Safe C Library - README". rurban.github.io. https://rurban.github.io/safeclib/doc/safec-3.5.2/index.html ↩