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 |
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