Contents 1 Changes from C99 2 Optional features 3 Criticism 4 See also 5 References 6 External links

Changes from C99[edit] The standard includes several changes to the C99 language and library specifications, such as:[9] Alignment specification (_Alignas specifier, _Alignof operator, aligned_alloc function, <stdalign.h> header file) The _Noreturn function specifier and the <stdnoreturn.h> header file Type-generic expressions using the _Generic keyword. For example, the following macro cbrt(x) translates to cbrtl(x), cbrt(x) or cbrtf(x) depending on the type of x: #define cbrt(x) _Generic((x), long double: cbrtl, \ default: cbrt, \ float: cbrtf)(x) Multi-threading support (_Thread_local storage-class specifier, <threads.h> header including thread creation/management functions, mutex, condition variable and thread-specific storage functionality, as well as the _Atomic type qualifier and <stdatomic.h> for uninterruptible object access). 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 <uchar.h> and the corresponding u and U string literal prefixes, as well as the u8 prefix for UTF-8 encoded literals).[10] Removal of the gets function, deprecated in the previous C language standard revision, ISO/IEC 9899:1999/Cor.3:2007(E), in favor of a new safe alternative, gets_s. Bounds-checking interfaces (Annex K).[11] Analyzability features (Annex L). More macros for querying the characteristics of floating point types, concerning subnormal floating point numbers and the number of decimal digits the type is able to store. Anonymous structures and unions, useful when unions and structures are nested, e.g. in struct T { int tag; union { float x; int n; }; };. Static assertions, which are evaluated during translation at a later phase than #if and #error, when types are understood by the translator. An exclusive create-and-open mode ("…x" suffix) for fopen. This behaves like O_CREAT|O_EXCL in POSIX, which is commonly used for lock files. The quick_exit function as a third way to terminate a program, intended to do at least minimal deinitialization if termination with exit fails.[12] Macros for the construction of complex values (partly because real + imaginary*I might not yield the expected value if imaginary is infinite or NaN).[13]

Optional features[edit] 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.[14] Programs can use predefined macros to determine whether an implementation supports a certain feature or not. Optional features in C11 Feature Feature test macro Availability in C99[15] Analyzability (Annex L) __STDC_ANALYZABLE__ Not available Bounds-checking interfaces (Annex K) __STDC_LIB_EXT1__ Not available Multithreading (<threads.h>) __STDC_NO_THREADS__ Not available Atomic primitives and types (<stdatomic.h> and the _Atomic type qualifier)[16] __STDC_NO_ATOMICS__ Not available IEC 60559 floating-point arithmetic (Annex F) __STDC_IEC_559__ Optional IEC 60559 compatible complex arithmetic (Annex G) __STDC_IEC_559_COMPLEX__ Optional Complex types (<complex.h>) __STDC_NO_COMPLEX__ Mandatory for hosted implementations Variable length arrays[17] __STDC_NO_VLA__ Mandatory

Criticism[edit] 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.[18] (The open-source Open Watcom C/C++ contains a "Safer C" library that is considered a nearly conforming implementation.[19])

See also[edit] Computer programming portal C99, ANSI C, previous standards for the C programming language C++20, C++17, C++14, C++11, C++03, C++98, versions of the C++ programming language standard Compatibility of C and C++

References[edit] ^ ISO/IEC 9899:2011 - Information technology - Programming languages - C ^ WG14 N1250 The C1X Charter ^ WG14 N1460 Subsetting the C Standard ^ WG14 N1570 Committee Draft — April 12, 2011 ^ "Defect report #411". ISO/IEC JTC1/SC22/WG14 - C. February 2012. Retrieved 2012-05-04.  ^ GCC 4.6 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) ^ Clang 3.1 Release Notes ^ Support for ISO C11 added to IBM XL C/C++ compilers ^ WG14 N1516 Committee Draft — October 4, 2010 ^ WG14 N1286 — "On Support for TR-19769 and New Character Types", Nick Stoughton, Larry Dwyer ^ 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".  ^ WG14 N1327 Abandoning a Process ^ WG14 N1464 Creation of complex value ^ WG14 N1548 Committee Draft — December 2, 2010 Conditional feature macros ^ ISO 9899:1999 6.10.8 Predefined macro names ^ WG14 N1558 Mar 14-18 meeting minutes (draft) ^ ISO 9899:2011 Programming Languages - C 4 ^ WG14 N1969 — "Updated Field Experience With Annex K — Bounds Checking Interfaces", Carlos O'Donell, Martin Sebor ^ Open Watcom Safer C Library

External links[edit] The C1X Charter N1570, the final draft of C1X, dated 12 April 2011 ISO C Working Group's official website The standard draft in simple ASCII and linked HTML forms, in addition to the PDF. Safe C Library of Bounded APIs Plum, Thomas (April 6, 2012). "C Finally Gets A New Standard". Dr. Dobb's Journal.  Safe C API—Concise solution of buffer overflow, The OWASP Foundation, OWASP AppSec, Beijing 2011 v t e C programming language ANSI C C89 and C90 C99 C11 Embedded C MISRA C Features Functions Header files Libraries Operators String Syntax Preprocessor Data types Standard library functions Char (ctype.h) File I/O (stdio.h) Math (math.h) Dynamic memory (stdlib.h) String (string.h) Time (time.h) Variadic (stdarg.h) POSIX Standard libraries Bionic libhybris dietlibc EGLIBC glibc klibc Microsoft Run-time Library musl Newlib uClibc BSD libc Compilers Comparison of compilers ACK Borland Turbo C Clang GCC ICC LCC Pelles C PCC SDCC TCC Microsoft Visual Studio / Express / C++ Watcom C/C++ IDEs Comparison of IDEs Anjuta Code::Blocks CodeLite Eclipse Geany Microsoft Visual Studio NetBeans Comparison with other languages Compatibility of C and C++ Comparison with Embedded C Comparison with Pascal Comparison of programming languages Descendant languages C++ C# D Objective-C Alef Limbo Go Vala Category Retrieved from "" Categories: C (programming language)Programming language standards

Navigation menu Personal tools Not logged inTalkContributionsCreate accountLog in Namespaces ArticleTalk Variants Views ReadEditView history More Search Navigation Main pageContentsFeatured contentCurrent eventsRandom articleDonate to WikipediaWikipedia store Interaction HelpAbout WikipediaCommunity portalRecent changesContact page Tools What links hereRelated changesUpload fileSpecial pagesPermanent linkPage informationWikidata itemCite this page Print/export Create a bookDownload as PDFPrintable version Languages 한국어日本語NorskРусскийSuomiSvenska中文 Edit links This page was last edited on 10 October 2017, at 17:33. Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. Privacy policy About Wikipedia Disclaimers Contact Wikipedia Developers Cookie statement Mobile view (window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.168","walltime":"0.546","ppvisitednodes":{"value":737,"limit":1000000},"ppgeneratednodes":{"value":0,"limit":1500000},"postexpandincludesize":{"value":24546,"limit":2097152},"templateargumentsize":{"value":659,"limit":2097152},"expansiondepth":{"value":9,"limit":40},"expensivefunctioncount":{"value":0,"limit":500},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 347.804 1 -total"," 53.15% 184.841 1 Template:Code"," 22.14% 77.002 1 Template:Reflist"," 13.57% 47.203 2 Template:Cite_web"," 7.30% 25.387 1 Template:Official_website"," 6.01% 20.896 1 Template:Portal"," 5.01% 17.438 1 Template:C_programming_language"," 4.39% 15.280 1 Template:Navbox"," 1.74% 6.039 1 Template:Icon"," 1.54% 5.344 1 Template:Date"]},"scribunto":{"limitreport-timeusage":{"value":"0.061","limit":"10.000"},"limitreport-memusage":{"value":2687790,"limit":52428800}},"cachereport":{"origin":"mw1238","timestamp":"20180223124851","ttl":1900800,"transientcontent":false}}});});(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":629,"wgHostname":"mw1238"});});

C11_(C_standard_revision) - Photos and All Basic Informations

C11_(C_standard_revision) More Links

Open StandardC (programming Language)C99Thread (computer Science)GNU Compiler CollectionClangIBM XL CData Structure AlignmentCube RootThread (computer Science)Mutual ExclusionCondition VariableThread-local StorageType QualifierLinearizabilityUnicodeUTF-16UTF-32UTF-8Gets()Bounds CheckingDenormal NumberAssertion (computing)C File Input/outputOpen (system Call)File LockingC Process ControlExit (system Call)Complex NumberNaNIEEE 754-2008IEEE 754-2008Open WatcomPortal:Computer ProgrammingC99ANSI CC++20C++17C++14C++11C++03C++98Compatibility Of C And C++Dr. Dobb's JournalTemplate:C Programming LanguageTemplate Talk:C Programming LanguageC (programming Language)ANSI CANSI CC99Embedded CMISRA CSubroutineInclude DirectiveCategory:C LibrariesOperators In C And C++C String HandlingC SyntaxC PreprocessorC Data TypesC Standard LibraryC Character ClassificationC File Input/outputC Mathematical FunctionsC Dynamic Memory AllocationC String HandlingC Date And Time FunctionsStdarg.hC POSIX LibraryCategory:C Standard LibraryBionic (software)Hybris (software)DietlibcEmbedded GLIBCGNU C LibraryKlibcMicrosoft Windows Library FilesMuslNewlibUClibcBSD LibcCategory:C CompilersList Of CompilersAmsterdam Compiler KitBorland Turbo CClangGNU Compiler CollectionIntel C++ CompilerLCC (compiler)Pelles CPortable C CompilerSmall Device C CompilerTiny C CompilerMicrosoft Visual StudioMicrosoft Visual Studio ExpressVisual C++Watcom C/C++Category:Integrated Development EnvironmentsComparison Of Integrated Development EnvironmentsAnjutaCode::BlocksCodeLiteEclipse (software)GeanyMicrosoft Visual StudioNetBeansCategory:Comparison Of Individual Programming LanguagesCompatibility Of C And C++Embedded CComparison Of Pascal And CComparison Of Programming LanguagesC++C Sharp (programming Language)D (programming Language)Objective-CAlef (programming Language)Limbo (programming Language)Go (programming Language)Vala (programming Language)Category:C (programming Language)Help:CategoryCategory:C (programming Language)Category:Programming Language StandardsDiscussion About Edits From This IP Address [n]A List Of Edits Made From This IP Address [y]View The Content Page [c]Discussion About The Content Page [t]Edit This Page [e]Visit The Main Page [z]Guides To Browsing WikipediaFeatured Content – The Best Of WikipediaFind Background Information On Current EventsLoad A Random Article [x]Guidance On How To Use And Edit WikipediaFind Out About WikipediaAbout The Project, What You Can Do, Where To Find ThingsA List Of Recent Changes In The Wiki [r]List Of All English Wikipedia Pages Containing Links To This Page [j]Recent Changes In Pages Linked From This Page [k]Upload Files [u]A List Of All Special Pages [q]Wikipedia:AboutWikipedia:General Disclaimer

view link view link view link view link view link