uint32_t



  • Hallo, kann mir bitte jemand erklären für was man diesen Typ benötigt?
    uint32_t



  • Der Name des Typs ist Programm:
    u -> unsigned, also vorzeichenlos
    int -> integraler typ, also Ganzzahl
    32 -> mindestens 32 Bit groß.

    Warum es den geibt? Weil die bekannteren integralen Typen (signed/unsigned char, (unsigned) short, (unsigned) int, (unsigned) long) keine genau definierte Größe haben, sondern nur Grenzen. So ist ein (unsigned) int auf typischen 32bit-Systemen 32 bit groß, auf 64bit-Systemen aber meistens 64 bit. Es kann aber auch Systeme geben, auf denen ein int nur 16 bit groß ist.
    Mit uint32_t stellst du sicher, dass du einen gewissen Wertebereich (nämlich 0 bis 232-1) zur Verfügung hast.



  • pumuckl schrieb:

    32 -> mindestens 32 Bit groß.

    Soll ich erst Meister Eder holen? 🤡
    Wenn ich den Standard zitieren darf:

    N3337 18.4.1 Klausel 2 schrieb:

    The header (hier ist <cstdint> gemeint) defines all functions, types, and macros the same as 7.18 in the C standard.

    Wenn ich also hier den C99 Standard zitieren darf (im C11 Standard ist es genauso):

    N1256 7.18.1.1 schrieb:

    1. The typedef name intN_t designates a signed integer type with width N, no padding
    bits, and a two’s complement representation. Thus, int8_t denotes such a signed
    integer type with a width of exactly 8 bits.
    2. The typedef name uintN_t designates an unsigned integer type with width N and no
    padding bits. Thus, uint24_t denotes such an unsigned integer type with a width of
    exactly 24 bits.


Anmelden zum Antworten