From: utzoo!decvax!cca!mo@Lbl-Unix@sri-unix Newsgroups: net.unix-wizards Title: Re: Information on Unix/Vax peculiarities Article-I.D.: sri-unix.4609 Posted: Sat Dec 4 12:04:55 1982 Received: Mon Dec 6 08:08:23 1982 From: mo at Lbl-Unix (Mike O'Dell [system]) Date: 30 Nov 1982 23:22:18-PST In general, C assumes (char *) is the fattest pointer, or rather, that (char *) is a type to which other pointers (and some useful range of ints) can always be cast without information loss. Even on very strange machines this is true. By very strange, I mean word-addressed wonders with odd numbers of chars/word, or machines with 16 or 18-bit int pointers and 19-bit char pointers. There are C compilers for both of these machines which work quite nicely with this restriction. On the other hand, larger data objects (like doubles) may require larger alignment, so (char *) is usually the "most resolved" pointer (takes the most number of bits to distinguish different objects) and (double *) is likely the most boundary-aligned. These are not hard and fast rules, but are true in all the C compilers I have seen. DMR, please correct any mispeaks. -Mike