5.64 New library features of C99

The C99 standard introduces several new library features of interest to programmers.

These new features include:

  • Some features similar to extensions to the C90 standard libraries offered in UNIX standard libraries, for example, the snprintf family of functions.

  • Some entirely new library features, for example, the standardized floating-point environment offered in <fenv.h>.

  • New libraries, and new macros and functions for existing C90 libraries.

A selection of new features in C99 that might be of interest to developers using them for the first time are documented.


C90 is compatible with Standard C++ in the sense that the language specified by the standard is a subset of C++, except for a few special cases. New features in the C99 standard mean that C99 is no longer compatible with C++ in this sense.

Many library features that are new to C99 are available in C90 and C++. Some require macros such as USE_C99_ALL or USE_C99_MATH to be defined before the #include.

Related concepts
5.78 Additional <math.h> library functions in C99
5.79 Complex numbers in C99
5.80 Boolean type and <stdbool.h> in C99
5.81 Extended integer types and functions in <inttypes.h> and <stdint.h> in C99
5.82 <fenv.h> floating-point environment access in C99
5.83 <stdio.h> snprintf family of functions in C99
5.84 <tgmath.h> type-generic math macros in C99
5.85 <wchar.h> wide character I/O functions in C99
Non-ConfidentialPDF file icon PDF versionARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.