COHERENT manpages
This page displays the COHERENT manpage for portability [Definition].
List of available manpages
Index
portability -- Definition
Portability means that code can be recompiled and run under different
computing environments without modification. Although true portability is
an ideal that is difficult to realize, you can take a number of practical
steps to ensure that your code is portable:
-> Do not assume that an integer and a pointer have the same size.
Remember that undeclared functions are assumed to return an int. If a
function returns a pointer, declare it so.
-> Do not write routines that depend on a particular order of code
evaluation, particular byte ordering, or particular length of data
types.
-> Do not write routines that play tricks with a machine's ``magic
characters''; for example, writing a routine that depends on a file's
ending with <ctrl-Z> instead of EOF ensures that that code can run
only under operating systems that recognize this magic character.
-> Always use manifest constants, such as EOF, and make full use of #define
statements.
-> Use header files to hold all machine-dependent declarations and
definitions.
-> Declare everything explicitly. In particular, be sure to declare
functions as void if they do not return a value; this avoids unforeseen
problems with undefined return values.
-> Do not assume that integers and pointers have the same size or even the
same kind of structure. Do not assume that pointers are all the same or
can point anywhere. On the i8086, in SMALL model a pointer to a
function addresses relative to the code segment, whereas a pointer to
data addresses relative to the data segment. On some machines,
character pointers are of a different size or structure than word
pointers.
-> The constant NULL is defined as being different from any valid pointer.
Use it and nothing else for that purpose.
-> Keep test scripts, preferably at the function level. That is, follow
each function with an
#ifdef TEST
section that will exercise that function. Running these can rapidly
isolate portability problems.
-> Place plenty of
#assert
statements in your programs. These can often pick up portability
problems.
See Also
header files,
pointer,
Programming COHERENT,
void









