Größe von Ganzzahl-Datentypen



  • Hi, ich habe mal eine Frage zu int-Datentypen (passt wohl auch zu anderen Typen):

    Wie groß ist ein char,byte,int denn nun. Laut MS-Hilfe
    char 1 byte
    unsigned char 1 byte
    short 2 byte
    long 4 byte
    usw.

    lediglich int und unsigned int haben demnach Systemabhängige Größen. Andere Quellen sprechen dagegen von völliger Implementierunsabhängigkeit dieser Größen. Lediglich size(char) <= size(short) <= ... und size(char) mind. 1 byte ist demnach sicher vorrausgestzt.

    Wer hat denn nun Recht?

    Und was ist mit den MS VS C++ - Typen _int8, _int16, ...
    Das sind sicher reine MS-Erfindungen die mit dem Standard nichts zu tun haben, oder?

    Viele Grüße 😉



  • Laut Standard gilt lediglich:
    sizeof(char)==1

    Für alle anderen Typen sind bestimmte Mindestgrößen sichergestellt (short/int: 2 Byte, long 4 Byte) und daß immer short<=int<=long gilt.

    (und "unsigned xyz" hat die selbe Größe wie "signed xyz")



  • In der limits.h (oder climits) stehen auch noch die maximalen und minimalen Werte der jeweiligen Datentypen drin.



  • #include<iostream>
    #include<limits>
    
    int main() {
       std::cout << "Zahlenbereich für int\n" << numeric_limits<int>::min() << " bis " << numeric_limits<int>::max() << endl;
    }
    //Zahlenbereich für Datentyp int
    


  • LAOES schrieb:

    Und was ist mit den MS VS C++ - Typen _int8, _int16, ...
    Das sind sicher reine MS-Erfindungen die mit dem Standard nichts zu tun haben, oder?

    das sind compiler-spezifische erweiterungen. <stdint.h> ist aber standard (afaik c-standard) und enthält typen mit festgelegten größen.



  • LAOES schrieb:

    Hi, ich habe mal eine Frage zu int-Datentypen (passt wohl auch zu anderen Typen):

    Wie groß ist ein char,byte,int denn nun.

    Implementationsspezifisch. Die Grösse auf dem jeweiligen System kannst du mit sizeof bestimmen.

    CStoll schrieb:

    Für alle anderen Typen sind bestimmte Mindestgrößen sichergestellt (short/int: 2 Byte, long 4 Byte)

    Nicht mal das. Lediglich die Relation ist sichergestellt, so dass zB ein long immer mindestens so gross ist wie ein short.


Anmelden zum Antworten