Hi, I think there no "correct" result. On a system that requires 64bit alignment for uint64_t, a C compiler is free to add extra bytes padding for either processor required alignment or for faster access.
With gcc you can force packed struct using __attribute__((__packed__)) But compiler may add extra code complexity when you access your data. -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Ariset Llerena Sent: mardi 18 juin 2013 09:25 To: [email protected] Subject: [Tinycc-devel] wrong/incorrect result of sizeof the following code #include <stdint.h> #include <stdio.h> struct foobar{ uint16_t foo; // 4 bytes uint64_t bar; // 8 bytes }; int main(){ printf("%d\n", sizeof(struct foobar)); return 0; } prints 16, gcc 4.7 prints 12 that is the correct result. Posted in http://ideone.com/grqlpU _______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel _______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel
