C99

From cppreference.com
< c

ISO/IEC 9899:1999, a.k.a. C99, is a previous revision of the C standard.

Obsolete

Removed

  • Implicit int in declarations
  • Implicit function declarations

Deprecated

New language features

Feature test macros for optional features

New library features

New headers

  • <complex.h>
  • <fenv.h>
  • <inttypes.h>
  • <stdbool.h>
  • <stdint.h>
  • <tgmath.h>

Library features

Defect reports

Template:c/language/history/DR99

Compiler support

C99 core language features

C99 feature
 
Paper(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++
(ex Portland Group/PGI)
Nvidia nvcc
Universal-character-names in identifiers N/A 3.1 Yes
Increased translation limits N590 0.9 N/A
// comments N644 2.7 Yes
restrict pointers N448 2.95 Yes
Enhanced arithmetic types N815
N601
N620
N638
N657
N694
N809
Yes partial
Flexible array members N/A 3.0 Yes
Variable-length array (VLA) types N683 0.9 Yes
Variably-modified (VM) types N2778 N/A Yes
Designated initializers N494 3.0 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
Hexadecimal floating constants N308 2.8 Yes
Compound literals N716 3.1 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
Declarations and statements in mixed order N740 3.0 Yes
init-statement in for loops N/A Yes Yes
inline functions N741 4.3 Yes
Predefined variable __func__ N611 2.95 Yes
Cvr-qualifiers and static in [] within function declarations N/A 3.1 Yes
Variadic macros N707 2.95 Yes
_Pragma preprocessor operator N634 3.0 Yes
Standard pragmas for floating-point evaluation N631
N696
No No Yes Yes
C99 feature
 
Paper(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++
Nvidia nvcc