W ISO / IEC 9899: 2018 (C18) podano w 7.20.1.3:
7.20.1.3 Najszybsze typy całkowite o minimalnej szerokości
1 Każdy z poniższych typów oznacza typ całkowity, który jest zwykle najszybszy 268) do działania z wszystkimi typami liczb całkowitych, które mają co najmniej określoną szerokość.
2 Nazwa typedef
int_fastN_tokreśla najszybszy typ liczby całkowitej o szerokości co najmniej N. Nazwa typedefuint_fastN_toznacza najszybszy typ liczby całkowitej bez znaku o szerokości co najmniej N.3 Wymagane są następujące typy:
int_fast8_t,int_fast16_t,int_fast32_t,int_fast64_t,uint_fast8_t,uint_fast16_t,uint_fast32_t,uint_fast64_tWszystkie pozostałe typy tego formularza są opcjonalne.
268) Nie można zagwarantować, że wskazany typ będzie najszybszy we wszystkich celach; jeśli implementacja nie ma wyraźnych podstaw do wyboru jednego typu nad drugim, po prostu wybierze typ całkowity spełniający wymagania dotyczące podpisu i szerokości.
Nie wiadomo jednak, dlaczego te „szybkie” typy całkowite są szybsze.
- Dlaczego te szybkie typy liczb całkowitych są szybsze niż inne typy liczb całkowitych?
Oznacziłem pytanie C ++, ponieważ typy szybkich liczb całkowitych są również dostępne w C ++ 17 w pliku nagłówkowym cstdint. Niestety w ISO / IEC 14882: 2017 (C ++ 17) nie ma takiej sekcji na temat ich wyjaśnienia; W innym przypadku zastosowałem tę sekcję w treści pytania.
Informacja: W C są zadeklarowane w pliku nagłówkowym stdint.h.
typedefstwierdzenia. Tak zazwyczaj , gdy jest dokonywane na poziomie podstawowym biblioteki. Oczywiście, C Standard stawia nie realne ograniczenie co typedefdo - tak na przykład typowa realizacja jest, aby od na systemie 32-bitowym, ale hipotetyczny kompilator mógł na przykład wdrożyć wewnętrzną typ i obiecuję zrobić wymyślnej optymalizacje w celu wybrania najszybszego typu komputera dla poszczególnych przypadków dla zmiennych tego typu, a następnie biblioteka może to zrobić. int_fast32_ttypedefint__int_fasttypedef
