Warum klappt das mit int?



  • Hallo,
    ich verstehe etwas zum wertebereich nicht: Also der wertebereich eines int liegt doch bei 32*** irgendwas. Warum kann ich trotzdem ohne probleme einen int mit z.B 100000 belegen? Kompilieren tuts ja und auch korrekt laufen - kann das sein?

    Danke



  • der wertebereich von int ist idR 4 byte groß, also ca +-2 Milliarden

    was du meinst sind short mit 2byte



  • Die Wertebereiche der Typen sind in C++ nicht fest vorgegeben, sondern hängen vom Compiler und von der Zielplattform ab. Compiler für 16-Bit-Programme unter MS-DOS hatten einen int-Wertebereich von -32768..32767, auf 32-Bit-Systemen sind auch 32-Bit-Integers, von -2^31 bis 2^31 - 1, üblich (ob da ein Zusammenhang besteht? 😉 ).

    Es gibt vom C++-Standard her Mindestgrößen für die Typen. int muss beispielsweise mindestens den Bereich -32767 bis 32767 umfassen. Daran sollte man sich halten, wenn man an maximaler Portabilität interessiert ist.



  • Naja die Größe für int ist vom Standard indirekt vorgegeben. Int hat die "native Größe" also bei 16-Bit System 16 Bit und bei 32-Bit Systemen eben 32 Bit usw..


Anmelden zum Antworten