Compare with earlier versions:

Compare with later versions:

C99 defines 24 standard headers and specifies 1058 names. Among them, the macro __STDC_VERSION__ expands to 199901L.

This standard extended the library substantially and added several language features.

inline was introduced, stolen from C++. Making a function in-line suggests that the compiler should try to embed the function's implementation directly in the calling code, thus avoiding the overhead of a function call.

restrict type qualification was introduced to permit optimisation of indirection. A restrict-qualified pointer type indicates that the referenced object will not change unexpectedly due to things outside a function's control (such as a call to another function).

C++ block structure was adopted in the grammar of block statements.

Array . Multidimensional arrays and their dimensions can be passed as arguments. Specific array elements can be initialised. Variable-length arrays may appear at the end of structures. Specific structure members can be initialised.

The header <complex.h> was introduced to provide arithmetic types for complex and imaginary numbers and their associated mathematical operations.

The header <math.h> was greatly extended with new operations and variations for each floating-point type.

The header <tgmath.h> was introduced to provide type-generic mathematical operations.

The headers <stdint.h> and <inttypes.h> were introduced to provide integer types with special characteristics. For example, int_least32_t is the narrowest signed integer type with at least 32 usable bits, and PRIdLEAST32 is the conversion specifier used to print a value of this type.

The header <stdbool.h> was introduced to provide a boolean type.

The header <fenv.h> was introduced to provide portable access to the floating-point environment.

A program can identify an environment conforming at least to C99 by the presence of __STDC__ with the value 1 and the presence of __STDC_VERSION__ with the minimum value 199901L. It can further determine that it does not conform to any later version by detecting that exact value.

Names specified in C99


CHaR
Sitemap Supported
Site format updated 2024-06-05T22:37:07.391+0000
Data updated 1970-01-01T00:00:00.000+0000
Page updated 2022-06-17T21:43:05.000+0000