Hi, x86 is little-endian ARM can be little or big endian, like mips processor, This config is done by hardware Stephane On Thu, Jul 08, 2004 at 12:30:56PM +0530, amith <amith@multitech.co.in> wrote: > Hi all , > a little off-topic. > > #include<stdio.h> > #include<string.h> > > typedef struct test > { > unsigned short w1; > unsigned short w2; > }Test; > > Test t1; > > unsigned long temp = 0x12345678; > > main() > { > printf(" sizeof(Test) = %d\n",sizeof(Test)); > memcpy(&t1,&temp,4); > printf(" t1.w1 = %X \n",t1.w1); > printf(" t1.w2 = %X \n",t1.w2); > printf(" &t1.w1 = %X \n",&t1.w1); > printf(" t1.w2 = %X \n",&t1.w2); > } > > output: > t1.w1 = 5678 > t1.w1 = 1234 > &t1.w1 = 6004 > &t1.w1 = 6006 > > > i tried the above code on x86 and ARM , both gave me the same results. > Both x86 and ARM are little-endian , or arent they? . Could someone > explain this result with respect to the definition of Little Endian . > which goes (one of them) as : > Little Endian: the least significant byte of a multi-byte data field is > stored in the lowest memmory address. > > Now, i have a couple of doubts : > 1) i read somewhere on the net, that a processor can be set to either > Little endian or Big endian, configurable ? > 2) Could someone explain this with respect to the Little Endian > definition given above. > > > 6004 6006 > _________________ > | 5678 | 1234 | > |________|________ | > t1.w1 t1.w2 > > Any good links to the Endianess would be great. > > thanks. > > cheers, > Amith > > > > > -- > Kernelnewbies: Help each other learn about the Linux kernel. > Archive: http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ > > -- Stephane List http://slist.lilotux.net -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/