Jeśli chcesz korzystać z Qt , trzeba ogarnąć quint8
, quint16
i tak dalej.
Jeśli chcesz użyć wygadany , trzeba powitanie guint8
, guint16
i tak dalej.
Na Linuksie istnieją u32
, s16
i tak dalej.
uC / OS definiuje SINT32
, UINT16
i tak dalej.
A jeśli musisz użyć jakiejś kombinacji tych rzeczy, lepiej bądź przygotowany na kłopoty. Ponieważ na komputerze u32
zostaną typedef
d nad long
i quint32
będą typedef
dni nad int
i kompilator będzie narzekać .
Dlaczego wszyscy to robią, jeśli tak jest <stdint.h>
? Czy to jakaś tradycja dla bibliotek?
stdint.h
został wymyślony.
sizeof(int) * CHAR_BIT
(na przykład) i użyć tego? Jeśli twój int
jest zbyt mały, aby reprezentować twój zakres (np. Indeks tablicy), prawie na pewno nie powinieneś go używać int
, ale coś w stylu size_t
. Dlaczego miałoby to int32
mieć większy sens? Jedynym sensem, jaki ma ustalona szerokość, jest komunikacja między systemami (np. Format pliku / sieci) ...
uint16_t
(a może to fast
lub least
wariant). Chodzi mi o to: te typy są wygodne w użyciu i mają swoją rację istnienia.
size_t
i / lub uint64_t
.