Antworten:
Der C99 stdint.hdefiniert diese:
int8_tint16_tint32_tuint8_tuint16_tuint32_tUnd wenn die Architektur sie unterstützt:
int64_tuint64_tEs gibt auch verschiedene andere ganzzahlige Typedefs stdint.h.
Wenn Sie ohne C99-Umgebung nicht weiterkommen, sollten Sie wahrscheinlich Ihre eigenen Typedefs angeben und die C99 trotzdem verwenden.
Die uint32und uint64(dh ohne das _tSuffix) sind wahrscheinlich anwendungsspezifisch.
stdint.hbenötigt sie alle.
typedef uint32_t Uint32;in include / SDL_stdinc.h (wenn Sie SDL-Benutzer sind)
Diese ganzzahligen Typen sind alle in definiert stdint.h
stdint.hwenn Sie den C99-Standard respektieren.
stdint.h. Dies gibt 0 Treffer zurück : grep uint32 /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h | grep -v uint32_t.
#include "stdint-gcc.h", und wenn Sie diese Datei erfassen , erhalten Sie die Definitionen.
_tSuffix, wie in der obigen Antwort aufgeführt.
Wenn Sie C99 verwenden, schließen Sie einfach ein stdint.h. Übrigens gibt es die 64-Bit-Typen, wenn der Prozessor sie unterstützt.
uint128_tif, __SIZEOF_INT128__das auf 16 oder höher definiert ist (GCC und kompatible Geräte). Es ist auf x86_64 / amd64-Computern verfügbar, wird jedoch vom Prozessor nicht nativ unterstützt. Nur Cray's haben diese Registergröße, IIRC.
int_leastNN_tunduint_leastNN_tfürNN8, 16, 32 und 64 immer existieren . C99 erlaubt keine Implementierungen ohne einen Integer-Typ von mindestens 64 Bit, dalong longmindestens so groß sein muss.