Thread (10 messages) flat view 10 messages, 4 authors, 2016-08-11

Re: sizeof(struct ...)

From: René Scharfe <hidden>
Date: 2016-08-11 20:44:58

Erik Mouw schrieb:
On Thu, Nov 23, 2006 at 04:45:09PM +0100, René Scharfe wrote:
quoted
 Is there really a compiler that inserts padding between arrays of
unsigned chars?
Yes, that compiler is called "gcc".

#include <stdio.h>

struct foo {
        unsigned char a[3];
        unsigned char b[3];
};

int main(void)
{
        printf("%d\n", sizeof(struct foo));
        return 0;
}

On i386 that prints 6, on ARM it prints 8.
Does it add 1 byte after a and and 1 after b or two after b?
I suspect it's the latter case -- otherwise Gerrit's patch,
which started this thread, wouldn't help solve his problem.
Or the pad sizing follows complicated rules that I do not
understand at the moment.

Time to look for an ARM emulator, it seems.

Thanks,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help