Open System Services Porting Guide (G06.29+, H06.06+, J06.03+)

Table 1 ISO/ANSI C Features Not Supported in Common C (continued)
ISO/ANSI C FeatureFeature Type
void, const, volatile, signed, and enumKeywords
Operators Assignment operators -=, +=, and so on are treated as
single tokens
unary + added
size of yields size_t instead of unsigned int
& operator can always be applied to arrays
& operator can never be used with an object declared as
a register
Strings List of \x escapes expanded
Adjacent string literals are concatenated
String constants can be placed in read-only memory
The controlling expression and case labels can have any
integral type
Switch statements
Arithmetic conversions use the smallest type that can hold
the result Shifting by a long count does not coerce the
shifted operands to long
Arithmetic
Headers <limits.h>, <float.h>, and <stddef.h> added
<locale.h> and its defined functions added Headers
are self-sufficient Headers are important
Pointers Void * added as generic pointer type
Pointer to a function can be used without an explicit *
Pointers can point just beyond end of array
Functions Structures can be passed to functions and returned by
functions
Function prototypes and type checking added
Reserved Words
auto, break, ..., volatile, whileReserved by C language
All symbols start with a unique set of characters, for
example:d_, E, LC_, pw_, ...
Reserved by header files
abort(), abs(), acos(), ..., log(), log10(),
longjmp(), malloc(), mblen(), mbstowcs(), ...,
vsprintf(), wctombs()
Reserved by C library functions
access(), alarm(), ..., lsatty(), kill(), link(),
longjmp(), lseek(), ..., utime(), waitpid(),
write()
Reserved by POSIX library functions
Constants
U and L added as integer suffixes
F and L added for floating constants
L can be used to specify a wide-character constant or a string of wide characters
ISO/ANSI C Header Files
Header files contain declarations for related library functions and macros, as well as variables
and types that complete that set. The ISO/ANSI C header files are kept in /usr/include and
are:
<assert.h>
<ctype.h>
Overview of Porting 27