Big oder Little Endian [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
king-crash
Beiträge: 742
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Big oder Little Endian [gelöst]

Beitrag von king-crash » 26.01.2008 12:19:33

Hallo,
Wie finde ich mit #ifdef heraus welches Format der Compiler verwendet?

Gruß
Zuletzt geändert von king-crash am 28.01.2008 15:19:43, insgesamt 1-mal geändert.

Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

Beitrag von rksteve » 26.01.2008 14:00:38

ich würde mal sagen dass das Format hardwareabhängig ist und nicht vom Compiler.
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 26.01.2008 14:09:58

hi,

aber der Compiler sollte eigentlich wissen, für welche Hardware
er Code erzeugen soll ;)

schau die mal /usr/include/endian.h an; so könnte es gehen:

Code: Alles auswählen

#include <endian.h>

#if __BYTE_ORDER == __BIG_ENDIAN
/* BIG! */
#endif
Beware of programmers who carry screwdrivers.

Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

Beitrag von rksteve » 26.01.2008 15:01:22

cosmac hat geschrieben:hi,
aber der Compiler sollte eigentlich wissen, für welche Hardware
er Code erzeugen soll ;)
Ja, da ist natürlich auch was wares drann :roll:
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 26.01.2008 15:55:08

diese "predefined Macros" sind halt leider nicht sehr kompatibel.
wenn du autoconf verwendest, könntest du das "AC_C_BIGENDIAN" Macro verwenden, für cmake gibt es auch ein Testmacro

Gruß
gms

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 27.01.2008 11:46:46

Alternativ kann man selbst eine kleine Funktion schreiben, mit der man es zur Laufzeit abfragen kann.
MfG GoKi
:wq

Benutzeravatar
king-crash
Beiträge: 742
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von king-crash » 28.01.2008 15:19:13

Thx, genau das wollt ich wissen.

Antworten