C99
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
- Universal-character-names in identifiers
- Increased translation limits
-
//
comments -
restrict
pointers - Enhanced arithmetic types
-
_Bool
-
long long
andunsigned long long
- Extended integer types
-
_Complex
types (float _Complex
,double _Complex
, andlong double _Complex
) -
_Imaginary
types (float _Imaginary
,double _Imaginary
, andlong double _Imaginary
)
-
- Flexible array members
- Variable-length array (VLA) types and variably-modified (VM) types
- Improvements of braced-init-list for array, struct and union types
- Non-constant initializers
- Designated initializers
- Idempotent cvr-qualifiers
- Trailing comma in enumerator-list
- Hexadecimal floating constants
- Compound literals
- Floating-point environment
- Requiring truncation for divisions of signed integer types
- Implicit
return 0;
in themain()
function - Declarations and statements in mixed order
- init-statement in
for
loops -
inline
functions - Predefined variable
__func__
- Cvr-qualifiers and
static
in[]
within function declarations - Variadic macros
-
_Pragma
preprocessor operator - Standard pragmas for floating-point evaluation
-
STDC
FENV_ACCESS
-
STDC
FP_CONTRACT
-
STDC
CX_LIMITED_RANGE
-
Feature test macros for optional features
-
__STDC_IEC_559__
- Indicates IEEE-754 binary floating-point arithmetic and required math functions are supported.
-
__STDC_IEC_559_COMPLEX__
- Indicates IEEE-754 complex arithmetic and required math functions are supported.
-
__STDC_HOSTED__
- Indicates that the implementation is hosted.
-
__STDC_ISO_10646__
- Indicates that Unicode is used by the wide literal encodings and expands to the latest supported revision.
-
__STDC_MB_MIGHT_NEQ_WC__
- Indicates that there are some characters in the basic character set having different code unit values in ordinary and wide literal encodings.
New library features
New headers
-
<complex.h>
-
<fenv.h>
-
<inttypes.h>
-
<stdbool.h>
-
<stdint.h>
-
<tgmath.h>
Library features
- Aliases for integer types
- Integer types with exact width (
intN_t
anduintN_t
) - Fastest integer types with at least given width (
int_fastN_t
anduint_fastN_t
) - Smallest integer types with at least given width (
int_leastN_t
anduint_leastN_t
) - Integer types capable for cast between object pointers (
intptr_t
anduintptr_t
) - Integer types with maximum width (
intmax_t
anduintmax_t
)
- Integer types with exact width (
- Operations on
long long
andintmax_t
- Floating-point environment access
- Extended floating-point math functions
- New floating-point math functions
- -
f
and -l
variants for existing and new floating-point math functions - Math error handling
- Complex functions
-
_Exit()
- Formatting support for
long long
,unsigned long long
,intmax_t
, anduintmax_t
-
isblank()
andiswblank()
-
snprintf()
andvsnprintf()
-
vfscanf()
andvfwscanf()
function families - Extensions for
fscanf()
andfprintf()
function families-
ll
length modifier forlong long
andunsigned long long
-
hh
length modifier forsigned char
andunsigned char
-
l
length modifier fordouble
-
z
length modifier forsize_t
and its signed version -
t
length modifier forptrdiff_t
and its unsigned version -
j
length modifier forintmax_t
anduintmax_t
-
a
conversion specifier for floating-point types
-
- Numeric limit macros for
long long
andunsigned long long
- Numeric limit macros corresponding to existing and new aliases for integer types
- Format string macros for integer types
-
va_copy
- Type-generic math macros
- Floating-point comparison macros
- Floating-point classification macros
- Compatibility macros for
_Bool
(bool
,true
, andfalse
)
Defect reports
Template:c/language/history/DR99.
Compiler support
Template:c/compiler support/99.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/99