编译器对 C99 的支持
来自 cppreference.cn
[编辑] 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 |