This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Hi, the structure layout and alignement is implementation defined. You may never make any asumption about the structure layout within the memory or the site of the structures. E.g.: struct x { int a; char b; int c; char d; }; what is the size of this structure? Is it 32 byte (64 bit alignement), 16 byte (32 bit alignement), 8 byte (16 bit integer) or may be 10 bytes? Does the memory layout looks like a a a a b c c c c d or a a a a c c c c b d Since this is also implementation defined. Also the organization of global / local symbols. My suggestion is, that the correct way to exchange data between differnet systems (Compiler / CPUs) is to with and read a byte stream. Most of the (embedded) compiler also support an alignement directive for structures. So in this case you can force the alignement for specific structures. The x86 CPU support missaligned memmory accesses (int on a none 4 byte aligned boundary) while the ARM CPU doesn't support something like this. Also it is better for the data access, if the start address is 4 bytes aligned in both cases. CU, Robert -----Original Message----- From: Cliff Tsai [mailto:clifftsai@minecard.com.tw] Sent: Thursday, May 24, 2001 3:42 AM To: crossgcc Subject: sizeof different in x86 and arm. Hi: I have a simple struct as follow struct test_align { unsigned char Name[21]; unsigned char Version[8]; }; But on cygwin for x86,the sizeof(struct test_align) is 29; but on cygwin for arm,the sizeof(struct test_align) return 32 WHY. ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |