> I know, that x86 is big endian architecture
> but simple programm like this:
>
> #include <stdio.h>
> #include <sys/param.h>
> main () {
> /* Are we little or big endian? From Harbison&Steele. */
> union
> {
> long l;
> char c[sizeof (long)];
> } u;
> u.l = 1;
> printf ("Little endian? %s\n", (u.c[sizeof (long) - 1] == 1) ? "yes" :
>"no");
> #if BYTE_ORDER == BIG_ENDIAN
> printf("Big endian\n");
> #elif BYTE_ORDER == LITTLE_ENDIAN
> printf("Little endian\n");
> #else
> printf("Unknown\n");
> #endif
> }
>
> Give me a strange result:
> Little endian? no
> Little endian
This program gets it wrong. When the last byte of a long is set after the long was
set to 1, we have a big endian architecture (the "little" end is at the 4th byte,
so the "big end" is at the 1st byte).
> On my FreeBSD 4.2-BETA BYTE_ORDER = LITTLE_ENDIAN!
> I`m very confused and some programms detect my machine as Little Endian,
>by
> example freetds.
The x86 architecture _is_ little endian.
- Thomas
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message