En ISO / IEC 9899: 2018 (C18), se establece en 7.20.1.3:
7.20.1.3 Tipos enteros de ancho mínimo más rápidos
1 Cada uno de los siguientes tipos designa un tipo entero que es generalmente más rápido 268) para funcionar con entre todos los tipos de enteros que tienen al menos la anchura especificada.
2 El nombre typedef
int_fastN_t
designa el tipo entero con signo más rápido con un ancho de al menos N. El nombre typedefuint_fastN_t
designa el tipo entero sin signo más rápido con un ancho de al menos N.3 Se requieren los siguientes tipos:
int_fast8_t
,int_fast16_t
,int_fast32_t
,int_fast64_t
,uint_fast8_t
,uint_fast16_t
,uint_fast32_t
,uint_fast64_t
Todos los demás tipos de este formulario son opcionales.
268) No se garantiza que el tipo designado sea el más rápido para todos los propósitos; Si la implementación no tiene bases claras para elegir un tipo sobre otro, simplemente elegirá algún tipo de entero que satisfaga los requisitos de firma y ancho.
Pero no se dice por qué estos tipos enteros "rápidos" son más rápidos.
- ¿Por qué estos tipos enteros rápidos son más rápidos que los otros tipos enteros?
Etiqueté la pregunta con C ++, porque los tipos enteros rápidos también están disponibles en C ++ 17 en el archivo de encabezado de cstdint
. Desafortunadamente, en ISO / IEC 14882: 2017 (C ++ 17) no existe tal sección sobre su explicación; Había implementado esa sección de otra manera en el cuerpo de la pregunta.
Información: en C, se declaran en el archivo de encabezado de stdint.h
.
typedef
declaraciones. Por lo general , se realiza en el nivel de biblioteca estándar. Por supuesto, el estándar C no impone una restricción real sobre lo que typedef
deben hacer, por lo que , por ejemplo, una implementación típica es utilizar int_fast32_t
un sistema typedef
de int
32 bits, pero un compilador hipotético podría, por ejemplo, implementar un __int_fast
tipo intrínseco y prometer hacer algo elegante optimizaciones para elegir el tipo de máquina más rápido caso por caso para las variables de ese tipo, y luego la biblioteca podría typedef
hacerlo.