C99 编译器支持
来自 cppreference.com
[编辑] C99 核心语言特性
本节内容不完整 原因:需要列出 C 编译器,并进行验证 |
C99 特性 |
论文 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
IBM XL C++ |
IBM Open XL C++ for AIX |
IBM Open XL C++ for z/OS |
Sun/Oracle C++ |
Embarcadero C++ Builder |
Cray |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
在 标识符 中使用通用字符名 | N/A | 3.1 | 是 | 是 | ||||||||||||
增加的 翻译限制 | N590 | 0.9 | N/A | |||||||||||||
// 注释 | N644 | 2.7 | 是 | 是 | ||||||||||||
restrict 指针 | N448 | 2.95 | 是 | 部分* | ||||||||||||
增强的 算术类型 | N815 N601 N620 N638 N657 N694 N809 |
是 | 部分 | 可能 | ||||||||||||
柔性数组成员 | N/A | 3.0 | 是 | 是 | ||||||||||||
可变长数组 (VLA) 类型 | N683 | 0.9 | 是 | |||||||||||||
可变修饰 (VM) 类型 | N2778 | N/A | 是 | |||||||||||||
指定初始化器 | N494 | 3.0 | 是 | 是 | ||||||||||||
非常量初始化器 | N/A | 1.21 | N/A | |||||||||||||
幂等 cvr 限定符 | N505 | 3.0 | N/A | |||||||||||||
在 枚举器列表 中使用尾部逗号 | N/A | 0.9 | 是 | 是 | ||||||||||||
十六进制 浮点常量 | N308 | 2.8 | 是 | 是 | ||||||||||||
复合文字 | N716 | 3.1 | 是 | 是 | ||||||||||||
浮点环境 | N/A | 部分 | 部分 | |||||||||||||
要求对带符号整数类型的除法进行截断 | N617 | 0.9 | N/A | |||||||||||||
在 main() 函数 中隐式使用 return 0; |
N/A | 是 | 是 | 是 | ||||||||||||
声明和语句混合顺序 | N740 | 3.0 | 是 | 是 | ||||||||||||
初始化语句 在 for 循环中 | N/A | 是 | 是 | 是 | ||||||||||||
inline 函数 | N741 | 4.3 | 是 | 是 | ||||||||||||
预定义变量 __func__ | N611 | 2.95 | 是 | 是 | ||||||||||||
cvr 限定符和 static 在函数声明中的 [] 中 | N/A | 3.1 | 是 | |||||||||||||
可变参数宏 | N707 | 2.95 | 是 | 是 | ||||||||||||
_Pragma 预处理器运算符 | N634 | 3.0 | 是 | 部分* | ||||||||||||
用于浮点运算的标准编译指示 | N631 N696 |
否 | 否 | 是 | ||||||||||||
C99 特性 |
论文 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
IBM XL C++ |
IBM Open XL C++ for AIX |
IBM Open XL C++ for z/OS |
Sun/Oracle C++ |
Embarcadero C++ Builder |
Cray |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |