C99
出自 cppreference.com
< c
ISO/IEC 9899:1999,又稱 C99,是 C 語言標準的一個舊版本。
| 本節尚不完整 原因:核心/函式庫功能、TC1~TC3、缺陷報告 (DR) |
目錄 |
[編輯] 已過時
[編輯] 已移除
- 宣告中的隱式 int
- 隱式函式宣告
[編輯] 已棄用
[編輯] 新語言功能
- 識別碼中的通用字元名稱 (Universal-character-names)
- 增加的翻譯限制
- // 註解
- restrict 指標
- 增強的算術類型
- _Bool
- long long 與 unsigned long long
- 擴充整數類型
- _Complex 類型(float _Complex、double _Complex 及 long double _Complex)
- _Imaginary 類型(float _Imaginary、double _Imaginary 及 long double _Imaginary)
- 彈性陣列成員 (Flexible array members)
- 變長陣列 (VLA) 類型與變長修飾 (VM) 類型
- 針對陣列、結構與聯合類型的 大括號初始化列表 (braced-init-list) 改進
- 非常數初始化式
- 指派初始化器 (Designated initializers)
- 等冪 cvr-限定符
- 枚舉列表中的尾隨逗號
- 十六進位浮點常數
- 複合字面量 (Compound literals)
- 浮點環境
- 有號整數類型除法要求截斷
main()函式中的隱式 return 0;- 宣告與語句混合排序
- for 迴圈中的 初始化語句
- inline 函式
- 預定義變數 __func__
- 函式宣告中 [] 內的 Cvr 限定詞與 static
- 可變參數巨集 (Variadic macros)
- _Pragma 前處理器運算子
- 浮點求值標準 pragma
-
STDCFENV_ACCESS -
STDCFP_CONTRACT -
STDCCX_LIMITED_RANGE
-
[編輯] 選用功能的功能測試巨集
- __STDC_IEC_559__
- 表示支援 IEEE-754 二進位浮點運算及所需的數學函式。
- __STDC_IEC_559_COMPLEX__
- 表示支援 IEEE-754 複數運算及所需的數學函式。
- __STDC_HOSTED__
- 表示實作是宿主式 (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)
[編輯] 缺陷報告
[編輯] 編譯器支援
[編輯] C99 核心語言特性
| 本節尚不完整 原因:需要列出 C 編譯器、驗證 |
| C99 特性 |
提案論文 (Papers) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (原 PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| 識別碼中的通用字元名稱 (Universal-character-names) | 3.1 | 是 | 是 | ||||||||
| 增加的翻譯限制 | N590 | 0.9 | 不適用 (N/A) | ||||||||
| // 註解 | N644 | 2.7 | 是 | 是 | |||||||
| restrict 指標 | N448 | 2.95 | 是 | 部分* | |||||||
| 增強的算術類型 | N815 N601 N620 N638 N657 N694 N809 |
是 | 部分 | 可能 | |||||||
| 彈性陣列成員 (Flexible array members) | 3.0 | 是 | 是 | ||||||||
| 變長陣列 (VLA) 類型 | N683 | 0.9 | 是 | ||||||||
| 可變修飾 (VM) 類型 | N2778 | 不適用 (N/A) | 是 | ||||||||
| 指派初始化器 (Designated initializers) | N494 | 3.0 | 是 | 是 | |||||||
| 非常數初始化式 | 1.21 | 不適用 (N/A) | |||||||||
| 等冪 cvr-限定符 | N505 | 3.0 | 不適用 (N/A) | ||||||||
| 枚舉列表中的尾隨逗號 | 0.9 | 是 | 是 | ||||||||
| 十六進位浮點常數 | N308 | 2.8 | 是 | 是 | |||||||
| 複合字面量 (Compound literals) | N716 | 3.1 | 是 | 是 | |||||||
| 浮點環境 | 部分 | 部分 | |||||||||
| 有號整數類型除法要求截斷 | N617 | 0.9 | 不適用 (N/A) | ||||||||
main() 函式中的隱式 return 0; |
是 | 是 | 是 | ||||||||
| 宣告與語句混合排序 | N740 | 3.0 | 是 | 是 | |||||||
| for 迴圈中的 初始化語句 | 是 | 是 | 是 | ||||||||
| inline 函式 | N741 | 4.3 | 是 | 是 | |||||||
| 預定義變數 __func__ | N611 | 2.95 | 是 | 是 | |||||||
| 函式宣告中 [] 內的 Cvr-限定符與 static | 3.1 | 是 | |||||||||
| 可變參數巨集 (Variadic macros) | N707 | 2.95 | 是 | 是 | |||||||
| _Pragma 前處理器運算子 | N634 | 3.0 | 是 | 部分* | |||||||
| 浮點求值標準 pragma | N631 N696 |
否 | 否 | ||||||||
| C99 特性 |
提案論文 (Papers) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (原 PGI)* |
Nvidia nvcc |
Cray |