### Summary of C Language Level Conflicts - AIX info

This section summarizes for quick reference the conflicts listed in the related pages.

Note: The following table shows only those features of extended level C that conflict with either RT C or ANSI/ISO C. Features that are part of extended C but not part of RT C are not listed in the table unless they present a conflict.

Area of Conflict | RT C | ansi C | extended C
--- | --- | --- | ---
asm and fortran keywords | Supported | Not Supported | Not Supported
=+ and =- operator | Supported | Not Supported | Not Supported
Type specifier not required when a name that was previously defined as a typedef is redefined | Supported | Not Supported | Not Supported
Scope of external data declared or defined at block scope | File | Block | Block
#ifdef using logical operators or period (.) | Supported | Not Supported | Not Supported
Taking the address of a register variable | Supported | Not Supported | Not Supported
Modifiable or unmodifiable string literals | Modifiable | Unmodifiable | Modifiable
Relaxed ref/def model | Supported | Not Supported | Supported
unsigned char and unsigned short bit fields | Supported | Not Supported | Changed to unsigned int
unsigned char and char recognized as incompatible types | Not Supported | Supported | Not Supported
long long int type | Not Supported | Not Supported | Supported
Scope of external functions declared at block scope | File | Block | File
Handling of macro parameters within string literals | Expanded | Not Expanded | Expanded
Preprocessor macro can be redefined without first being undefined | Supported | Not Supported | Supported
Rules followed when performing arithmetic conversions | RT C | ANSI/ISO | RT C
All valid pointer conversions without an explicit cast | Supported | Not Supported | Supported
Assignment of pointers to different types | Supported | Not Supported | Supported
Enumeration declarations with trailing extra comma | Supported | Not Supported | Supported
Functions without definition accepted and defined extern | Supported | Not Supported | Supported
Definition of static function | Not Required | Required | Not Required
sizeof operator on bit fields | Supported | Not Supported | Supported
Array initialization without braces | Supported | Not Supported | Not Supported
Last member of a structure definition not terminated by a semicolon | Supported | Not Supported | Not Supported
Predefined macro name | unix and AIX | _AIX | _AIX
$ character in identifiers | Permitted | Prohibited | Permitted
Macro concatenation using /**/ | Supported | Not Supported | Supported

Language Levels

Conflicts Between extended C and Other Levels
Extensions to RT C Provided by extended C
Exceptions to ansi C Addressed by classic C
saal2 C Deviations from SAA Level 2 C
Arithmetic Conversions for extended Level C