Datentypen - Prozessor-, Betriebssystemabhängigkeit



  • Hallo,

    wer kennt sich aus mit der Prozessor- oder Betriebssystemabhängigkeit von Datentypen in C/C++?
    Welcher Typ, int oder long, ist abhängig vom Prozessor oder Betriebssystem?

    Das was ich bis jetzt ermitteln konnte ist:

    Datentyp        JAVA        C/C++ 32bit        C/C++ 64bit
    int             4 Byte      4 Byte             4 Byte
    long            8 Byte      4 Byte             8 Byte
    long long       -           8 Byte             8 Byte
    

    Stimmt das? Wer kann mir da näheres dazu sagen oder Seiten im Internet nennen?

    Danke und Grüße
    dziuba



  • Darauf darfst Du Dich bei C++ nicht verlassen.
    Wenn Du Datentypen einer bestimmten Größe brauchst, dann verwende boost::int32 und Co!



  • In C wird garantiert:

    char mind. 8 Bit
    short mind. 16 Bit
    int mind 16 Bit
    long mind. 32 Bit
    long long mind. 64 Bit
    

    Größer können sie immer sein. Kleiner dürfen sie nicht sein.



  • @TactX
    in C gibt es aber auch typedefs mit vorgegebenen Größen in stdint.h. Boost hat dafür cstdint.hpp



  • Ähmm, habe ich was gegenteiliges gesagt?



  • TactX schrieb:

    Ähmm, habe ich was gegenteiliges gesagt?

    hab ich ja auch nicht behauptet. Ich meine nur die typedefs ala uint8_t etc. Ist eben ein unterschied, ob ein Typ mindestens 8 bit groß ist oder genau 8 bit 🙂



  • kingruedi schrieb:

    TactX schrieb:

    Ähmm, habe ich was gegenteiliges gesagt?

    hab ich ja auch nicht behauptet. Ich meine nur die typedefs ala uint8_t etc. Ist eben ein unterschied, ob ein Typ mindestens 8 bit groß ist oder genau 8 bit 🙂

    Ja, klar. Aber warum sagst du das mir? 😕


Anmelden zum Antworten