C is one of the oldest and most used programming languages especially when it comes to system programming, writing core software such as operating system kernels, device drivers, software used in embedded devices etc. It is a highly versatile, and powerful language that gives you great control over the system’s internals. It is one of the most important languages in existence today.
Recently the C standard was updated, with improved multitasking, a garbage collection option, etc. Now the C standard too has been updated –it had been it development for quite a while– and published as ISO/IEC 9899:2011, or simply C11. Like C it too adds support for multitasking, a necessity on today’s hardware. C11 also improves support for Unicode.
To make it easier to conform to the specification, more features have been made optional: “Two of the largest additions to C99 were complex arithmetic and variable length arrays; and the largest addition to C1X is threads and atomics. To ease conformance to C1X, and in the hopes of increasing mainstream adoption of C1X, it seems prudent to allow any or all of these three large components to be omitted in an implementation without losing the cachet of compliance.“
With the updates to C standardized, it is only a matter of time that compilers start adding support for some of the new features. GCC is already on the way.