Thread (1 message) 1 message, 1 author, 2000-01-12

Re: User level Macros for Endianess

From: David A. Gatwood <hidden>
Date: 2000-01-12 19:37:17

On Wed, 12 Jan 2000 iweiny@pacbell.net wrote:
Unfortunately I don't have an x86 Linux machine and he has been reluctant to
change his code because he feels this is not the "proper" way to detect
endianess across Linux's, Solaris, and possibly other UNIX's.
Well, if you really want it to be completely cross-platform, you could do
something like:


int a = 0x33323130;
char *b, d[5];
int c;

for (b=(char *)&a, c=0; c<4; c++,b++)
    {
	d[c]=*b;
    }
d[5]=0;



I believe that the Linux macros do this same basic thing, if memory
serves....  BTW, if you printf("%s", d) you'll get 3210 on big endian,
0123 on little.  You could also do it as short integers instead of
characters by subtracting 48 in the d[c]=*b line.

Just a sick thought.  :-)


Later,
David


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help