C99
From cppreference.com
< c
ISO/IEC 9899:1999、通称 C99 は、C言語規格の以前の改訂版です。
| このセクションは未完成です 理由:中核/ライブラリ機能、TC1〜TC3、DR |
目次 |
[編集] 廃止
[編集] 削除
- 宣言における暗黙の int
- 暗黙の関数宣言
[編集] 非推奨
[編集] 新しい言語機能
- 識別子における汎用文字名
- 増加した翻訳制限
- // コメント
- restrictポインタ
- 拡張された算術型
- _Bool
- long long と unsigned long long
- 拡張整数型
- _Complex 型 (float _Complex, double _Complex, long double _Complex)
- _Imaginary 型 (float _Imaginary, double _Imaginary, long double _Imaginary)
- フレキシブル配列メンバ
- 可変長配列 (VLA) 型と可変修飾 (VM) 型
- 配列、構造体、共用体型に対する braced-init-list (波括弧初期化子リスト) の改善
- 非定数初期化子
- 指示付き初期化子
- 冪等なcvr修飾子
- enumerator-listの末尾カンマ
- 16進浮動小数点定数
- 複合リテラル
- 浮動小数点環境
- 符号付き整数型の除算における切り捨ての要求
main()関数における暗黙的なreturn 0;- 宣言と文の混在
- forループにおけるinit-statement
- inline関数
- 定義済み変数__func__
- 関数宣言内の [] における CVR修飾子と static
- 可変引数マクロ
- _Pragmaプリプロセッサ演算子
- 浮動小数点評価のための標準プラグマ
-
STDCFENV_ACCESS -
STDCFP_CONTRACT -
STDCCX_LIMITED_RANGE
-
[編集] オプション機能のための機能テストマクロ
- __STDC_IEC_559__
- IEEE-754 2進浮動小数点演算と、要求される数学関数がサポートされていることを示します。
- __STDC_IEC_559_COMPLEX__
- IEEE-754 複素数演算と、要求される数学関数がサポートされていることを示します。
- __STDC_HOSTED__
- 実装がホスト環境であることを示します。
- __STDC_ISO_10646__
- ワイドリテラルのエンコーディングでUnicodeが使用されていることを示し、サポートされている最新のリビジョンに展開されます。
- __STDC_MB_MIGHT_NEQ_WC__
- 通常リテラルとワイドリテラルのエンコーディングにおいて、異なるコードユニット値を持つ基本文字セットの文字が存在することを示します。
[編集] 新しいライブラリ機能
[編集] 新しいヘッダ
[編集] ライブラリ機能
- 整数型のエイリアス
- long long と intmax_t に対する操作
- 浮動小数点環境へのアクセス
- 拡張浮動小数点数学関数
- 新しい浮動小数点数学関数
- 既存および新規の浮動小数点数学関数に対する -
fと -lのバリアント - 数学エラー処理
- 複素数関数
- _Exit()
- long long, unsigned long long, intmax_t, uintmax_t に対する書式化サポート
- isblank() と iswblank()
- snprintf() と vsnprintf()
- vfscanf() と vfwscanf() 関数ファミリ
- fscanf() と fprintf() 関数ファミリの拡張
- long long と unsigned long long のための数値リミットマクロ
- 既存および新規の整数型エイリアスに対応する数値リミットマクロ
- 整数型のための書式文字列マクロ
- va_copy
- 型総称数学マクロ
- 浮動小数点比較マクロ
- 浮動小数点分類マクロ
- _Bool のための互換マクロ (bool, true, false)
[編集] 不具合報告
Template:c/language/history/DR99
[編集] コンパイラサポート
[編集] C99のコア言語機能
| このセクションは未完成です 理由:Cコンパイラのリストアップ、検証が必要 |
| C99の機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| 識別子における汎用文字名 | 3.1 | はい | はい | ||||||||
| 増加した翻訳制限 | N590 | 0.9 | N/A | ||||||||
| // コメント | N644 | 2.7 | はい | はい | |||||||
| restrictポインタ | N448 | 2.95 | はい | 部分的* | |||||||
| 拡張された算術型 | N815 N601 N620 N638 N657 N694 N809 |
はい | 部分的 | 多分 | |||||||
| フレキシブル配列メンバ | 3.0 | はい | はい | ||||||||
| 可変長配列 (VLA) 型 | N683 | 0.9 | はい | ||||||||
| 可変修飾 (VM) 型 | N2778 | N/A | はい | ||||||||
| 指示付き初期化子 | N494 | 3.0 | はい | はい | |||||||
| 非定数初期化子 | 1.21 | N/A | |||||||||
| 冪等なcvr修飾子 | N505 | 3.0 | N/A | ||||||||
| enumerator-listの末尾カンマ | 0.9 | はい | はい | ||||||||
| 16進浮動小数点定数 | N308 | 2.8 | はい | はい | |||||||
| 複合リテラル | N716 | 3.1 | はい | はい | |||||||
| 浮動小数点環境 | 部分的 | 部分的 | |||||||||
| 符号付き整数型の除算における切り捨ての要求 | N617 | 0.9 | N/A | ||||||||
main()関数における暗黙的なreturn 0; |
はい | はい | はい | ||||||||
| 宣言と文の混在 | N740 | 3.0 | はい | はい | |||||||
| forループにおけるinit-statement | はい | はい | はい | ||||||||
| inline関数 | N741 | 4.3 | はい | はい | |||||||
| 定義済み変数__func__ | N611 | 2.95 | はい | はい | |||||||
| 関数宣言内の[]におけるcvr修飾子とstatic | 3.1 | はい | |||||||||
| 可変引数マクロ | N707 | 2.95 | はい | はい | |||||||
| _Pragmaプリプロセッサ演算子 | N634 | 3.0 | はい | 部分的* | |||||||
| 浮動小数点評価のための標準プラグマ | N631 N696 |
いいえ | いいえ | ||||||||
| C99の機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |