ISO/IEC 9899:1999, a.k.a. C99, is a previous revision of the C standard.
int
in declarations //
comments restrict
pointers _Bool
long long
and unsigned long long
_Complex
types (float _Complex
, double _Complex
, and long double _Complex
) _Imaginary
types (float _Imaginary
, double _Imaginary
, and long double _Imaginary
) return 0;
in the main()
function for
loops inline
functions __func__
static
in []
within function declarations _Pragma
preprocessor operator STDC
FENV_ACCESS
STDC
FP_CONTRACT
STDC
CX_LIMITED_RANGE
__STDC_IEC_559__
__STDC_IEC_559_COMPLEX__
__STDC_HOSTED__
__STDC_ISO_10646__
__STDC_MB_MIGHT_NEQ_WC__
<complex.h>
<fenv.h>
<inttypes.h>
<stdbool.h>
<stdint.h>
<tgmath.h>
intN_t
and uintN_t
) int_fastN_t
and uint_fastN_t
) int_leastN_t
and uint_leastN_t
) intptr_t
and uintptr_t
) intmax_t
and uintmax_t
) long long
and intmax_t
f
and -l
variants for existing and new floating-point math functions _Exit()
long long
, unsigned long long
, intmax_t
, and uintmax_t
isblank()
and iswblank()
snprintf()
and vsnprintf()
vfscanf()
and vfwscanf()
function families fscanf()
and fprintf()
function families ll
length modifier for long long
and unsigned long long
hh
length modifier for signed char
and unsigned char
l
length modifier for double
z
length modifier for size_t
and its signed version t
length modifier for ptrdiff_t
and its unsigned version j
length modifier for intmax_t
and uintmax_t
a
conversion specifier for floating-point types long long
and unsigned long long
va_copy
_Bool
(bool
, true
, and false
) Template:c/language/history/DR99.
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++ (ex Portland Group/PGI) | Nvidia nvcc |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/99