C99
來自 cppreference.com
< c
ISO/IEC 9899:1999,又稱 C99,是 C 標準的一個早期修訂版。
本節不完整 原因:核心/庫特性,TC1~TC3,DRs |
目錄 |
[編輯] 已廢棄
[編輯] 已移除
- 宣告中隱式的 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) 型別
- 針對陣列、結構體和聯合體型別的 帶花括號的初始化列表 的改進
- 非常量初始化器
- 指定初始化器
- 冪等 cvr-限定符
- 列舉器列表中的尾隨逗號
- 十六進位制浮點常量
- 複合字面量
- 浮點環境
- 對有符號整數型別除法要求截斷
main()
函式中隱式的 return 0;- 宣告和語句混合順序
- for 迴圈中的 init-statement
- inline 函式
- 預定義變數 __func__
- 函式宣告中 [] 內的 Cvr 限定符和 static
- 可變引數宏
- _Pragma 預處理器運算子
- 浮點評估的標準 pragma
-
STDC
FENV_ACCESS -
STDC
FP_CONTRACT -
STDC
CX_LIMITED_RANGE
-
[編輯] 可選特性的功能測試宏
- __STDC_IEC_559__
- 表示支援 IEEE-754 二進位制浮點算術和所需的數學函式。
- __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 | ||||||||
列舉器列表中的尾隨逗號 | 0.9 | 是 | 是 | ||||||||
十六進位制浮點常量 | 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 | 是 | 部分* | |||||||
浮點評估的標準 pragma | N631 N696 |
否 | 否 | ||||||||
C99 特性 |
提案 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (前 PGI)* |
Nvidia nvcc |
Cray |