
Zitat von
Siro
okay, wenn uint32_t vom type __UINT32_T_TYPE__ ist,
dann müste aber der Typ __UINT32_T_TYPE__ irgendwo beschrieben sein.
Nein, muss er nicht. __UINT32_T_TYPE__ ist offenbar etwas Compiler-Internes (wofür auch die beiden führenden Unterstriche sprechen).

Zitat von
Siro
Woher weis der Compiler, das ein uint32_t einem vermutlich "unsigned long" entspricht, das muss doch irgendwo stehen.
Das kann ich der Datei selbst aber nicht entnehmen.
Die Zeile typedef __UINT32_T_TYPE__ uint32_t;
kann alles mögliche sein, da ich nicht weis wie __UINT32_T_TYPE__ definiert ist.
Das ist doch auch alles total uninteressant. Der C-Standard sichert dir für uint32_t gewisse Eigenschaften zu, nämlich dass es ein unsigned Integer mit der Größe 32 Bit ist. Wenn ein "unsigned long" diese Bedingungen erfüllt, dann kann die Programmierumgebung ein uint32_t auf ein "unsigned long" zurückführen, muss es aber nicht. Es kann den Typ auch auf einen x-beliebigen anderen Typ mit diesen Eigenschaften zurückführen (hier __UINT32_T_TYPE__). Für dich interessant sind nur die zugesicherten Eigenschaften, nicht wie der Compiler das nun genau realisiert.
PS: Beim AVR-GCC sieht es z.B. noch verwirrender aus:
Code:
typedef int int8_t __attribute__((__mode__(__QI__)));
typedef unsigned int uint8_t __attribute__((__mode__(__QI__)));
typedef int int16_t __attribute__((__mode__(__HI__)));
typedef unsigned int uint16_t __attribute__((__mode__(__HI__)));
typedef int int32_t __attribute__((__mode__(__SI__)));
typedef unsigned int uint32_t __attribute__((__mode__(__SI__)));
#if !__USING_MINT8
typedef int int64_t __attribute__((__mode__(__DI__)));
typedef unsigned int uint64_t __attribute__((__mode__(__DI__)));
Da werden alle diese Typen auf "int" und "unsigned int" zurückgeführt, allerdings mit zusätzlichen Attributen, die wohl die genaue Größe festlegen. Aber auch hier gilt dann: was ein "unsigned int" mit zusätzlichem Attribut "__mode__(__SI__)" genau ist, interessiert nicht wirklich. Hauptsache der daraus gebildete Typ uint32_t hat die zugesicherten Eigenschaften.
Lesezeichen