Compiler support for C99
From cppreference.com
< c | compiler support
[edit] C99 core language features
This section is incomplete Reason: needs to list C compilers, verification |
C99 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
|
---|---|---|---|---|---|---|---|---|---|---|---|
Universal-character-names in identifiers | N/A | 3.1 | Yes | Yes | |||||||
Increased translation limits | N590 | 0.9 | N/A | ||||||||
// comments | N644 | 2.7 | Yes | Yes | |||||||
restrict pointers | N448 | 2.95 | Yes | partial* | |||||||
Enhanced arithmetic types | N815 N601 N620 N638 N657 N694 N809 |
Yes | partial | Maybe | |||||||
Flexible array members | N/A | 3.0 | Yes | Yes | |||||||
Variable-length array (VLA) types | N683 | 0.9 | Yes | ||||||||
Variably-modified (VM) types | N2778 | N/A | Yes | ||||||||
Designated initializers | N494 | 3.0 | Yes | Yes | |||||||
Non-constant initializers | N/A | 1.21 | N/A | ||||||||
Idempotent cvr-qualifiers | N505 | 3.0 | N/A | ||||||||
Trailing comma in enumerator-list | N/A | 0.9 | Yes | Yes | |||||||
Hexadecimal floating constants | N308 | 2.8 | Yes | Yes | |||||||
Compound literals | N716 | 3.1 | Yes | Yes | |||||||
Floating-point environment | N/A | partial | partial | ||||||||
Requiring truncation for divisions of signed integer types | N617 | 0.9 | N/A | ||||||||
Implicit return 0; in the main() function
|
N/A | Yes | Yes | Yes | |||||||
Declarations and statements in mixed order | N740 | 3.0 | Yes | Yes | |||||||
init-statement in for loops | N/A | Yes | Yes | Yes | |||||||
inline functions | N741 | 4.3 | Yes | Yes | |||||||
Predefined variable __func__ | N611 | 2.95 | Yes | Yes | |||||||
Cvr-qualifiers and static in [] within function declarations | N/A | 3.1 | Yes | ||||||||
Variadic macros | N707 | 2.95 | Yes | Yes | |||||||
_Pragma preprocessor operator | N634 | 3.0 | Yes | partial* | |||||||
Standard pragmas for floating-point evaluation | N631 N696 |
No | No | ||||||||
C99 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |