Hello list,

I did a quick search in the archives but I found nothing appropriate.

My (embedded) development system is gcc-3.2.1 arm-elf. I don't really understand its value for sizeof(struct { short x }).

Given the following program:

<code>
#include <stdio.h>

int
main(int argc, char *argv[])
{
    struct {
        short           s;
    } s_sh;

    printf("sizeof s_sh %d\n", (int) sizeof s_sh);
    printf("sizeof short %d\n", (int) sizeof(short));

    return 0;
}
</code>

it prints:

sizeof s_sh 4
sizeof short 2

Why isn't the size of this struct also 2? I assume this is to do with alignment, but even then I don't really understand. To create an array of such structs, no padding seems required.

Or has this already been fixed in not so ancient versions of arm-elf-gcc?

Thanks for enlightening me,

Rutger Hofman
VU Amsterdam

Reply via email to