Overzealous alignment and padding
Larry Jones
scjones at sdrc.UUCP
Tue Oct 18 07:48:34 AEST 1988
In article <410 at sdrc.UUCP>, I wrote:
> I am looking for information about C compilers that are overzealous
> about aligning structure members and padding structures. By this
> I mean that the compiler aligns more strictly than is required by
> the underlying hardware - for example, aligning an array of char
> on an int boundary rather than a char boundary. Similarly, a
> structure may be padded out to an even number of ints even though
> all the members are only char.
Well, I've been inundated by the first wave of replies saying
"LOTS of compilers do this!" which means I didn't make myself
clear and, sure enough, as I reread what I said, not only did I
not make myself clear, I didn't say what I meant at all!
What I'm interested in knowing about is NOT compilers that align
more strictly than the hardware requires, but rather compilers
that align more strictly in some cases than in others. For
example, if a compiler chooses to align char on a multiple of 1,
short on a multiple of 2, and long on a multiple of 4, that's OK
by me. If, however, it further aligns char arrays or char
structure members on a multiple of 2 or 4 (even though char is
only aligned on a multiple of 1), THAT'S what I want to know
about (particularly if there's no way to disable it).
So far, the only compilers I know of that behave this way is the
Microsoft V4 (and related Xenix) compiler (which had a switch to
disable it), and the Apollo compiler (which does not).
----
Larry Jones UUCP: uunet!sdrc!scjones
SDRC scjones at sdrc.uucp
2000 Eastman Dr. BIX: ltl
Milford, OH 45150 AT&T: (513) 576-2070
"Save the Quayles" - Mark Russell
More information about the Comp.lang.c
mailing list