4.63 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
4.77 Additional <math.h> library functions in C99
4.78 Complex numbers in C99
4.79 Boolean type and <stdbool.h> in C99
4.80 Extended integer types and functions in <inttypes.h> and <stdint.h> in C99
4.81 <fenv.h> floating-point environment access in C99
4.82 <stdio.h> snprintf family of functions in C99
4.83 <tgmath.h> type-generic math macros in C99
4.84 <wchar.h> wide character I/O functions in C99
Non-ConfidentialPDF file icon PDF versionARM DUI0375E
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.