Jeśli chcesz korzystać z Qt , trzeba ogarnąć quint8, quint16i tak dalej.
Jeśli chcesz użyć wygadany , trzeba powitanie guint8, guint16i tak dalej.
Na Linuksie istnieją u32, s16i tak dalej.
uC / OS definiuje SINT32, UINT16i tak dalej.
A jeśli musisz użyć jakiejś kombinacji tych rzeczy, lepiej bądź przygotowany na kłopoty. Ponieważ na komputerze u32zostaną typedefd nad longi quint32będą typedefdni nad inti kompilator będzie narzekać .
Dlaczego wszyscy to robią, jeśli tak jest <stdint.h>? Czy to jakaś tradycja dla bibliotek?
stdint.hzostał wymyślony.
sizeof(int) * CHAR_BIT(na przykład) i użyć tego? Jeśli twój intjest 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 int32mieć większy sens? Jedynym sensem, jaki ma ustalona szerokość, jest komunikacja między systemami (np. Format pliku / sieci) ...
uint16_t(a może to fastlub leastwariant). Chodzi mi o to: te typy są wygodne w użyciu i mają swoją rację istnienia.
size_ti / lub uint64_t.