9899:2011[1]の通称であり、その前の規格であったC99の後継である。新しい規格であるC11では、マルチスレッドのサポートを改善する詳細なメモリモデルなどの、一般的な現代のコンパイラでサポート済みの機能を主に規格化している。C99の実装では適合が遅れたため、C11では中核となる言語規格に準拠し易いよう特定の機能をオプションにしている[2][3]。2011年4月にC11の最終ドラフトであるN1570[4]が発行され、2011年10月10日に新しいC11規格はその最終ドラフトレビューをパスして公式にISOによって承認された。9899:2011として発行された。標準マクロである__STDC_VERSION__には、C11のサポートが利用可能であることを表すため201112Lという値が定義されている[5]。C(英語版)ではバージョン12.1から[8]サポートが開始されている。外部リンクC99からの変更点[編集]C11の規格には、C99の言語仕様とライブラリ仕様からの変更が含まれる。変更点は以下の通り[9]:アライメントの仕様(_Alignas指定子、alignof演算子、aligned_alloc関数、<stdalign.h>ヘッダファイル)_Noreturn関数指定子と<stdnoreturn.h>ヘッダファイル。_Genericキーワードを使用した型ジェネリック式。次のマクロcbrt(x)はxの型に応じてcbrtl(x)、cbrt(x)、cbrtf(x)などに置き換わる。cbrtf)(X)マルチスレッドのサポート(_Atomic型修飾子(英語版)、無停止オブジェクトアクセス用の<stdatomic.h>以外にも、_Thread_localストレージクラス指定子、スレッド作成・管理関数を含む<threads.h>ヘッダ、ミューテックス、条件変数、スレッド局所記憶機能)。19769:2004に基づくUnicodeのサポートの改善(UTF-16/UTF-32でエンコードされたデータを保存するためのchar16_tとchar32_t型、<uchar.h>の変換関数、uとU文字列リテラル接頭辞、UTF-8でエンコードされたリテラル用のu8接頭辞)[10]。非推奨となっており、その新しい安全な代替がgets_sである。