Per the C 2011 standard itself, here are the major changes from C99:
Foreword
...
6 This third edition cancels and replaces the second edition, ISO/IEC 9899:1999, as
corrected by ISO/IEC 9899:1999/Cor 1:2001, ISO/IEC 9899:1999/Cor 2:2004, and
ISO/IEC 9899:1999/Cor 3:2007. Major changes from the previous edition include:
— conditional (optional) features (including some that were previously mandatory)
— support for multiple threads of execution including an improved memory sequencing
model, atomic objects, and thread-local storage (
and
)
— additional floating-point characteristic macros (
)
— querying and specifying alignment of objects (
,
)
— Unicode characters and strings (
) (originally specified in
ISO/IEC TR 19769:2004)
— type-generic expressions
— static assertions
— anonymous structures and unions
— no-return functions
— macros to create complex numbers (
)
— support for opening files for exclusive access
— removed the gets
function (
)
— added the aligned_alloc
, at_quick_exit
, and quick_exit
functions
(
)
— (conditional) support for bounds-checking interfaces (originally specified in
ISO/IEC TR 24731−1:2007)
— (conditional) support for analyzability