ISO/IEC 9899:1999
読み:アイエスオウ-アイイースィー-きゅうはちきゅうきゅう-いちきゅうきゅうきゅう
外語:ISO/IEC 9899:1999
ISO規格によるC(ISO C)の第二版。俗に「C99」と呼ばれる。
概要
日本規格は、JIS X 3010:2003が対応する。
前回の改訂、いわゆるC95が初版に対する追加改訂であったのに対し、こちらは全面的な改訂版となっている。
初版からこの版までの長い年月の間に様々な実装が生まれ、拡張的な仕様が作られて、言語としての利便性も高まってきた。この版では、そのうちの一部を正式な仕様として取り入れている。
特徴
国際化Cの最初の全改訂版である。主な仕様変更点は次の通り。
- 関数定義
- 暗黙の関数宣言(プロトタイプ宣言なしの関数使用)を動作未定義と規定
- 暗黙の型宣言(返却値intの自動宣言)の廃止
- 前定義識別名 __func__ 追加
- enum宣言での余分なカンマの許容
- インライン関数 (C++から)
- restrictポインターの追加
- 変数を途中で宣言できる (C++から)
- 指示付きの初期化子の追加
- 複合直定数
- 可変長配列などへの対応 (GCC拡張機能から)
- 新しい予約語の追加
- 新しいヘッダーファイルの追加
- inttypes.h 整数型書式変換
- complex.h 複素数
- stdbool.h bool型と値
- tgmath.h 型総称数学関数
- fenv.h 浮動小数点環境
- stdint.h 整数型
- プリプロセッサー
- //型のコメントの追加 (C++から)
- 関数型マクロ呼出しでの空引数の許容
- 可変個数引数マクロ
- 標準定義マクロの追加
- 標準プラグマ(#pragma STDC)の追加
- #pragma STDC FP_CONTRACT {ON|OFF|DEFAULT}
- #pragma STDC FENV_ACCESS {ON|OFF|DEFAULT}
- #pragma STDC CX_LIMITED_RANGE {ON|OFF|DEFAULT}
- 単項演算子 _Pragma の追加
- サフィックス(接尾辞)が無い時の整数定数の型の認識方法の変更 (intmax_t型、uintmax_t型)
- 文字列定数とワイド文字列定数の結合を規定
- 字句
- ユニバーサルキャラクタ名への対応 (\uxxxxと\Uxxxxxxxx)
- 識別名(変数名、関数名など)でマルチバイト文字の使用を許容
- 浮動小数点定数の16進数表記に対応
- 演算機能
- 論理値への対応 (_Bool)
- 64ビット程度以上の精度を持つ整数演算(long long)への対応 (GCC拡張機能から)
- 整数除算において、結果をすべて0方向に切り捨てることを規格化
- 複素数への対応 (_Complex、_Imaginary)
- 数学関係ライブラリの充実化 (POSIX準拠)
再検索