国際標準化機構(ISO)は、先月、C言語の新規格「C11」を制定しました。
「C11」の正式名称は「ISO/IEC9899:2011」です。「C11」は、C++言語との互換性に優れ、マルチスレッド機能が搭載されていることやISO/IEC TR 19769:2004に基づくUnicodeがサポートされていること、浮動小数点型の特性を調べるマクロなどの新機能が追加されていることなどが条件となります。仕様策定中は「C1X」と呼ばれていました。
主な仕様変更は以下の通りです。
・C++との互換性の確保
・標準化されたAlignmentの指定
・新予約語「_Alignas」「_Thread_Local」の追加
・無名構造体と共用体
・マルチスレッド機能
・関数が配列を引数にするときの配列の境界チェック機能
・ファイルオープンモードの追加
・ISO/IEC TR 19769:2004に基づくUnicodeサポート
・浮動小数点型の特性を調べるマクロや静的アサーション機能の追加
・範囲チェック関数の追加
プログラミング言語「C」は、1990年にisoで規格化され、その後何度か訂正や追加が行われてきました。C言語の規格には、今まで1999年にISOで規格化された「C99」がありましたが、実際にはあまり普及していませんでした。
C言語の規格はANSI/ISOで英語で書かれていますが、日本ではJIS規格になっており、日本語で仕様を読むことができます。現在、新規格「C11」の仕様書は、日本円で約2万8000円で販売されています。