C99
From cppreference.net
<
c
ISO/IEC 9899:1999 、別名 C99 、はC標準の以前の改訂版です。
|
このセクションは不完全です
理由: コア/ライブラリ機能、TC1~TC3、DRs |
目次 |
新しい言語機能
- 識別子 におけるユニバーサル文字名
- 拡張された 翻訳制限
- // コメント
- 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) 型
-
配列
、
構造体と共用体
型における
波括弧初期化子リスト
の改善
- 非定数初期化子
- 指示付き初期化子
- 冪等な cvr 修飾子
- 列挙子リスト における末尾のカンマ
- 16進 浮動小数点定数
- 複合リテラル
- 浮動小数点環境
- 符号付き整数型の除算における切り捨ての要求
-
main()関数 における暗黙の return 0 ; - 宣言と文の混合順序
- for ループにおける 初期化文
- inline 関数
- 定義済み変数 __func__
- 関数宣言内の [ ] における cvr 修飾子と static
- 可変引数マクロ
- _Pragma プリプロセッサ演算子
-
浮動小数点評価のための標準プラグマ
-
STDCFENV_ACCESS -
STDCFP_CONTRACT -
STDCCX_LIMITED_RANGE
-
オプション機能のための機能テストマクロ
-
__STDC_IEC_559__
- IEEE-754 バイナリ浮動小数点演算と必要な数学関数がサポートされていることを示します。
-
__STDC_IEC_559_COMPLEX__
- IEEE-754 複素数演算と必要な数学関数がサポートされていることを示します。
-
__STDC_HOSTED__
- 実装が ホスト環境 であることを示します。
-
__STDC_ISO_10646__
- ワイド文字リテラルのエンコーディングでUnicodeが使用されており、サポートされている最新のリビジョンに展開されることを示します。
-
__STDC_MB_MIGHT_NEQ_WC__
- 基本文字セット内の一部の文字が、 通常の文字リテラルエンコーディングとワイド文字リテラルエンコーディング で異なるコード単位値を持つ可能性があることを示します。
新規ライブラリ機能
新規ヘッダー
(注:指定された要件により、HTMLタグ・属性、
タグ内のテキスト、C++固有用語は翻訳対象外のため、元のテキストを保持しています)
ライブラリ機能
- 整数型のエイリアス
- 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 )
廃止された機能
削除された機能
- 宣言における暗黙の int
- 暗黙の関数宣言
非推奨機能
不具合報告
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 | 該当なし | ||||||||
| // コメント | N644 | 2.7 | はい | はい | |||||||
| restrict ポインタ | N448 | 2.95 | 対応 | 部分的 * | |||||||
| 拡張 arithmetic types |
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 | 対応 | 対応 | |||||||
| 浮動小数点環境 | partial | partial | |||||||||
| 符号付き整数型の除算における切り捨ての要求 | N617 | 0.9 | N/A | ||||||||
main()関数における
return
0
;
の暗黙的な返却
main()
関数
|
はい | はい | はい | ||||||||
| 宣言と文の混合順序 | N740 | 3.0 | はい | はい | |||||||
| init-statement in for ループ | はい | はい | はい | ||||||||
| 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++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|