[comp.lang.c] External ptrs and arrays

gwyn@smoke.BRL.MIL (Doug Gwyn) (11/09/89)

In article <225800239@uxe.cso.uiuc.edu> mcdonald@uxe.cso.uiuc.edu writes:
>... the actual standard is much more limited than the capabilities of C
>on normal machines like PDP-11's, VAX's, 8086's and 68000's.

A better way to look at it is that the Standard makes no promises that
cannot reasonably be upheld by all implementations.  A specific
implementation can have additional properties if the environment so allows.

By the way, the PDP-11 is the main example of a system where data and
function address spaces are distinct, and it was the first system for
which C was implemented.  Therefore your being "flabbergasted" by the
discovery that conversion between data and function pointers was not
guaranteed to work merely indicates the limits of your C experience.
Most C users seem to think that the way C happens to work on the first
system on which they use it is the way that C should be everywhere.
The advantage of learning what is and is not universally guaranteed is
that you are more likely to write code that ports to different systems
without hassle.  For many of us, that is an extremely important property.