C99 的编译器支持
来自cppreference.com
< c | compiler support
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 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 标识符中的通用字符名 | 不适用 | 3.1 | 是 | 是 | ||||||||||||
| 提高翻译极限 | N590 | 0.9 | 不适用 | |||||||||||||
| // 注释 | N644 | 2.7 | 是 | 是 | ||||||||||||
| restrict 指针 | N448 | 2.95 | 是 | 部分* | ||||||||||||
| 增强算术类型 | N815 N601 N620 N638 N657 N694 N809 |
是 | 部分 | 可能 | ||||||||||||
| 灵活的数组成员 | 不适用 | 3.0 | 是 | 是 | ||||||||||||
| 变长数组 (VLA) 类型 | N683 | 0.9 | 是 | |||||||||||||
| 可变修改 (VM) 类型 | N2778 | 不适用 | 是 | |||||||||||||
| 定名初始化式 | N494 | 3.0 | 是 | 是 | ||||||||||||
| 非常量初始化式 | 不适用 | 1.21 | 不适用 | |||||||||||||
| 幂等 cvr 限定符 | N505 | 3.0 | 不适用 | |||||||||||||
| enumerator-list 中的尾部逗号 | 不适用 | 0.9 | 是 | 是 | ||||||||||||
| 十六进制浮点常量 | N308 | 2.8 | 是 | 是 | ||||||||||||
| 复合字面量 | N716 | 3.1 | 是 | 是 | ||||||||||||
| 浮点环境 | 不适用 | 部分 | 部分 | |||||||||||||
| 规定有符号整数类型的除法进行截断 | N617 | 0.9 | 不适用 | |||||||||||||
main() 函数中的隐式 return 0;
|
不适用 | 是 | 是 | 是 | ||||||||||||
| 混合安排声明和语句 | N740 | 3.0 | 是 | 是 | ||||||||||||
| for 循环中的 初始化语句 | 不适用 | 是 | 是 | 是 | ||||||||||||
| 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++ |
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 |