Hallo, der Integer bei C ist ja grundsätzlich maschinenabhängig. Nun würde mich aber mal interessieren welche Aussagen über Integer fest vereinbart sind und wo diese nachzulesen sind. Beim C99-Standard habe ich beispielsweise gefunden, dass ein short mindestens 16 Bit lang sein muss und ein long mindestens 32 Bit. In anderen Aussagen findet man dann aber auch so Sachen wie "Der General C-Standard besagt, dass für die Anzahl Bits gilt: char <= short <= int <= long". Und so gibt's noch weitere Aussagen die sich teilweise aber gegenseitig "beißen". Weiß hier jemand wie die Integer-Typen bei C/C++ genau definiert sind und in welchem Standard das jeweils nachzulesen ist? Vielen Dank, Thomas
Thomas Finke schrieb: > Und so gibt's noch weitere Aussagen die sich teilweise aber gegenseitig > "beißen". Als da wären? > Weiß hier jemand wie die Integer-Typen bei C/C++ genau definiert sind > und in welchem Standard das jeweils nachzulesen ist? Du hast das bereits aufgezählt. In C89 sind die Mindestgrössen durch die Vorgaben für Zeugs wie MIN_INT festgelegt, und eben die von dir schon zitierte relative Ordnung. Das wars auch schon.
Thomas Finke schrieb: > der Integer bei C ist ja grundsätzlich maschinenabhängig. Jein, in grober Näherung ist der Compilerabhängig. > Nun würde mich aber mal interessieren welche Aussagen über Integer fest > vereinbart sind und wo diese nachzulesen sind. In erster Linie im Handbuch deines Compilers. Hält sich der an weitere Standards (etwa C99), dann kannst du natürlich auch in diesen weiterlesen.
Thomas Finke schrieb: > Beim C99-Standard habe ich beispielsweise gefunden, dass ein short > mindestens 16 Bit lang sein muss und ein long mindestens 32 Bit. Richtig. Das steht zwar nicht direkt so drin, ergibt sich aber indirekt über den Wertebereich, den sie mindestens können müssen. > In anderen Aussagen findet man dann aber auch so Sachen wie "Der General > C-Standard besagt, dass für die Anzahl Bits gilt: char <= short <= int > <= long". Auch das stimmt. > Weiß hier jemand wie die Integer-Typen bei C/C++ genau definiert sind Zusätzlich zu dem, was du schreibst, muß char 8 mindestens 8 Bit und long long mindestens 64 Bit sein. Dann hat jeder dieser Typen außer char ein Vorzeichen, wenn man nicht explizit unsigned davor schreibt. Bei char ist das vom Compiler abhängig. Außerdem ist sizeof(char) immer 1. > und in welchem Standard das jeweils nachzulesen ist? ISO/IEC 9899:2011 (oder einer der Vorgänger. Die sind zwar ungültig, aber definieren diese Sachen gleich).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.