Portabler Code ?!?
-
In Bezug auf den portablen Code ob da ein char 8 bit gross ist oder eine andere Grösse hat, sollte man das ein wenig pragmatisch angehen.
Es reicht das man weiss, das es solche "Exoten" gibt. Im Quelltext würde ich mir da nur einen Kopf machen, wenn das Programm real auf so einer Kiste laufen muss.
-
...mhh... schrieb:
aber was soll ich machen, wenn ich einen 4 byte int brauche, das system aber überhaupt keinen "vorgefertigten" 4 byte typ bereitstellt?
Indem du liest, was hier vorgeschlagen wurde und es umsetzt.
Wenn es keinen "vorgefertigten" Typ gibt, dann definierst du dir eben deinen eigenen.typedef unsigned long Typ32Bit; ... int main() { Typ32Bit x; assert( CHAR_BIT*sizeof(long)==32 ); /* ab hier ist sichergestellt, dass dein neuer Typ genau 32 Bit enthält */ ... }
Bei dieser Implementierung kannst du alle Funktion/Operatoren, die für unsigned long definiert sind, benutzen, z.B. strtoul,printf("%lu",scanf("%lu",...
Das befreit dich aber nicht von Maßnahmen zu Sicherstellung der Bytereihenfolge innerhalb deiner 4 Bytes, falls dein Programm solche Daten mit externen Quellen (Dateien,Netzwerk,...) tauscht.