Context Variables

Joseph S. D. Yao jsdy at hadron.UUCP
Tue Dec 3 15:56:01 AEST 1985

On most "reasonable" machine architectures, any scalar or pointer
data type should fit into a long.  However, in C, a pointer isn't
defined to fit into a long (or be in any way commensurable with
a scalar data type), so you may have problems on some of the more
different architectures.  Supposedly, sizeof(long) >= sizeof(int)
>= sizeof(short), although I have seen someone argue on this net
that it was legitimate to have an int whose size > sizeof(long).
I never saw anyone bother to refute that; but I think it's not
likely.  When they are implemented, a (void*) will hold any
pointer data type, so a union {long; void *;} should hold any
object.  But, to help preserve your own sanity and follow the
Prime Rule ("say what you mean"), you really should make a union
of all the different data types with which you'll be working.

	Joe Yao		hadron!jsdy at seismo.{CSS.GOV,ARPA,UUCP}

More information about the Comp.lang.c mailing list