### Functions and Macros

The following tables list the functions and macros that IBM C and C++ Compilers supports. They also include a list of the predefined macros reserved for use by the IBM C and C++ Compilersproduct.

The tables classify each function/macro according to the following:

ANSI/ISO | Defined in the ANSI/ISO 9899-1990[1992] C standard.
ANSI/ISO 93 | Defined in the ISO/IEC 9899:1990/Amendment 1:1993(E).
POSIX | Defined in the ISO/IEC 9945-1:1990/IEEEE POSIX 1003.1-1990 standard.
XPG | Defined in the X/Open Common Applications Environment Specification, System Interfaces and Headers, Issue 4 and Issue 5.
Extension | Extension to existing standards, specific to IBM C and C++ Compilers.
Subsystem | Included in the subsystem libraries.

If you are writing code to be ported to other standards-conforming systems, you can use the following table to find out which IBM C and C++ Compilers functions are portable. You can also set the language level of your source code to ensure only portable functions are used:

- To allow only functions defined by ANSI/ISO, set the language level to ANSI.
- To allow all IBM C and C++ Compilers functions, set the language level to Extended. This is the default.

Where a function is classified under a language standard and as an extension, the function conforms to the standard indicated, but has additional implementation-defined features. Such a function is considered to be an extension. If you set the language level to ANSI, you can still use the function, but the additional features will not be available.

Functions and Macros

Use the menubar below to search quickly for a particular function or macro. Each function/macro is classified alphabetically.

[A | B | C | D | E | F | G | H | I | K | L | M | N | O | P | Q | R | S | T | U | V | W]