On Sat, Mar 23, 2002 at 12:30:12AM +0100, clemensF wrote:
> > Christian Weisgerber:
>
> > char *p;
> > long x;
> > ...
> > read(fd, p, size);
> > ...
> > /* read 32-bit value */
> > x = *(long *)p;
> > ...
>
> das beispiel nimmt darueber hinaus auch an, variablen wuerden in
> textreihenfolge (oder genau andersrum) alloziert. das kann schon mit einem
> "-O" in den CFLAGS danebengehen. ich hab das beispiel aber nicht ganz
> verstanden. muessten p und x nicht in einem union sein, um ueberhaupt
> sowas machen zu koennen?
Nein - lies das Beispiel nochmal.
> > Ich habe auch schon solche lustigen Dinge gesehen, wie ein Versuch
> > portabel die Endianness zur Laufzeit zu bestimmen:
> >
> > ...
> > char endian[] = { 0, 0, 0, 1 };
> > int i;
> > ...
> > i = *(int *)endian;
> > if (i == 1)
> > ...
>
> man kann doch sowas aber machen, oder? wie macht man das richtig?
Zur Compilezeit - in einem binary sind genug Abhängigkeiten auf
die Byteorder als das es später mit einer anderen umgehen könnte.
So ein Programm gehört bestenfalls in ein configure Script.
-- B.Walter COSMO-Project http://www.cosmo-project.de ticso(at)cicely.de Usergroup info(at)cosmo-project.de To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Sat 23 Mar 2002 - 01:50:30 CET