Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Nov 2000 08:31:13 -0800 (PST)
From:      Richard Hodges <rh@matriplex.com>
To:        Alex Koshterek <havoc@lookanswer.com>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Byte order?
Message-ID:  <Pine.BSF.4.10.10011200827300.52841-100000@mail.matriplex.com>
In-Reply-To: <00112017175200.47740@pro.lookanswer.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 20 Nov 2000, Alex Koshterek wrote:

> 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
> }

Just to be different, why not use something like:

  if(htonl(1) == 1)
    bigendian
  else
    littleendian

Of course, that spoils the fun of figuring out what the
compiler is doing with the union :-)

All the best,

-Richard

-------------------------------------------
   Richard Hodges   | Matriplex, inc.
      <title>       | 769 Basque Way
  rh@matriplex.com  | Carson City, NV 89706
    775-886-6477    | www.matriplex.com 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.10011200827300.52841-100000>