### Extensions to RT C Provided by extended C - AIX info

The following are part of the ANSI/ISO C definition and are part of the extended language level. They cause no conflict with existing RT C source:

- #pragma, #elif, and #error preprocessor directives.
- Ability to form macro literals using #.
- Macro concatenation using ##.
- Recursive macro definitions are only expanded once.
- White space or comment allowed before #.
- Trigraph sequences.
- Redeclaration of typedef names (variable defined as a typedef can be redeclared as an identifier).
- const and volatile type qualifiers.
- Support of the signed keyword with char, int, short, and long data types.
- Suffixes `l` and `L` for type long double floating-point constants.
- Suffixes `u` and `U` for types unsigned char and unsigned int.
- Hexadecimal constants of the form `\0xdd`.
- Unary + operator.
- enum and void types.
- Function prototypes (including variable number of arguments specified by an ellipsis (...)).
- Initialization of auto aggregate variables.

Language Levels

Conflicts Between extended C and Other Levels
Exceptions to ansi C Addressed by classic C
saal2 C Deviations from SAA Level 2 C
Arithmetic Conversions for extended Level C
Summary of C Language Level Conflicts