C言語の規格

自分の書いているコードがCなのかC++なのか分からないことがあったので調べてみることにした。

C89に盛り込まれた新機能

・関数のプロトタイプ宣言
・void、enum


C95に盛り込まれた新機能

・ワイド文字(日本語等)


C99 ← スタンダード

・インライン関数
・ファイルスコープでない変数宣言がブロックの先頭になければならないという制限の撤廃
・いくつかの新しいデータ型。long long int、拡張整数型, 明示的な真偽型、複素数型 など
・BCPLやC++のような、//から始まる一行コメント
・snprintfのような新しいライブラリ関数
・stdbool.hやinttypes.hなどの新しいヘッダファイル
・型総称的な数学関数 (tgmath.h)
IEEE 浮動小数のより進んだサポート
・指示初期化子
・可変引数マクロのサポート
・最適化のための restrict 修飾子


C1x ← 公式候補

・組み込み分野
・文字データ型の追加(Unicodeのサポート)
・境界チェック付きのライブラリ関数
・十進浮動小数
・数学の特殊関数
・動的メモリ割り当て関数
・スレッド