C11
The C11 standard, formally known as ISO/IEC 9899:2011, is a major revision of the C-Programming-Language. It succeeded the C99 standard and introduced various features to improve support for multi-core processors and type safety. Detailed specifications are maintained by the International Organization for Standardization.
Key Features and Improvements
One of the most significant additions in C11 is the inclusion of multi-threading support via the threads.h library. This allows developers to write portable concurrent code across different operating systems. Additionally, the stdatomic.h header provides atomic operations, ensuring thread safety without explicit locks in many scenarios. The Memory-Model was also formally defined to clarify how different threads interact with shared memory.
The standard also introduced the _Generic keyword for type-generic expressions, which enables a form of compile-time polymorphism. For better error checking, _Static_assert was added to perform assertions at compile time rather than runtime. Security was improved by deprecating the unsafe gets() function in favor of fgets(). For technical documentation and implementation details, developers often refer to Cppreference.