Espacios de nombres
Variantes
Acciones

Tipos de enteros de ancho fijo (desde C99)

De cppreference.com
< c‎ | types

Contenido

[editar] Tipos

Definido en el archivo de encabezado <stdint.h>
int8_t
int16_t
int32_t
int64_t
tipo entero con signo con ancho de
exactamente 8, 16, 32 y 64 bits respectivamente
sin bits de relleno y usando el complemento de 2 para valores negativos
(sólo si la implementación soporta directamente el tipo)
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
tipo entero con signo más rápido con un ancho de
al menos 8, 16, 32 y 64 bits respectivamente
int_least8_t
int_least16_t
int_least32_t
int_least64_t
tipo entero con signo más pequeño con un ancho de
al menos 8, 16, 32 y 64 bits respectivamente
intmax_t ancho máximo para el tipo entero
intptr_t tipo entero capaz de contener un puntero
uint8_t
uint16_t
uint32_t
uint64_t
tipo entero sin signo con ancho de
exactamente 8, 16, 32 y 64 bits respectivamente
(sólo si la implementación soporta directamente el tipo)
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
tipo entero sin signo más rápido con un ancho de
al menos 8, 16, 32 y 64 bits respectivamente
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
tipo entero sin signo más pequeño con un ancho de
al menos 8, 16, 32 y 64 bits respectivamente
uintmax_t ancho máximo para el tipo entero sin signo
uintptr_t tipo entero sin signo capaz de contener un puntero

[editar] Macros de constantes

Definido en el archivo de encabezado <stdint.h>
Números enteros con signo: valor mínimo
INT8_MININT16_MININT32_MININT64_MIN
valor mínimo de un objeto de tipo int8_t, int16_t, int32_t, int64_t
(constante de macro)
INT_FAST8_MININT_FAST16_MININT_FAST32_MININT_FAST64_MIN
valor mínimo de un objeto de tipo int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t
(constante de macro)
INT_LEAST8_MININT_LEAST16_MININT_LEAST32_MININT_LEAST64_MIN
valor mínimo de un objeto de tipo int_least8_t, int_least16_t, int_least32_t, int_least64_t
(constante de macro)
INTPTR_MIN
valor mínimo de un objeto de tipo intptr_t
(constante de macro)
INTMAX_MIN
valor mínimo de un objeto de tipo intmax_t
(constante de macro)
Números enteros con signo: valor máximo
INT8_MAXINT16_MAXINT32_MAXINT64_MAX
valor máximo de un objeto de tipo int8_t, int16_t, int32_t, int64_t
(constante de macro)
INT_FAST8_MAXINT_FAST16_MAXINT_FAST32_MAXINT_FAST64_MAX
valor máximo de un objeto de tipo int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t
(constante de macro)
INT_LEAST8_MAXINT_LEAST16_MAXINT_LEAST32_MAXINT_LEAST64_MAX
valor máximo de un objeto de tipo int_least8_t, int_least16_t, int_least32_t, int_least64_t
(constante de macro)
INTPTR_MAX
valor máximo de un objeto de tipo intptr_t
(constante de macro)
INTMAX_MAX
valor máximo de un objeto de tipo intmax_t
(constante de macro)
Números enteros sin signo: valor máximo
UINT8_MAXUINT16_MAXUINT32_MAXUINT64_MAX
valor máximo de un objeto de tipo uint8_t, uint16_t, uint32_t, uint64_t
(constante de macro)
UINT_FAST8_MAXUINT_FAST16_MAXUINT_FAST32_MAXUINT_FAST64_MAX
valor máximo de un objeto de tipo uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t
(constante de macro)
UINT_LEAST8_MAXUINT_LEAST16_MAXUINT_LEAST32_MAXUINT_LEAST64_MAX
valor máximo de un objeto de tipo uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t
(constante de macro)
UINTPTR_MAX
valor máximo de un objeto de tipo uintptr_t
(constante de macro)
UINTMAX_MAX
valor máximo de un objeto de tipo uintmax_t
(constante de macro)

[editar] Macros de función para constantes enteras de ancho mínimo

INT8_CINT16_CINT32_CINT64_C
se expande a una expresión entera constante que tiene el valor especificado por su argumento y el tipo int_least8_t, int_least16_t, int_least32_t, int_least64_t respectivamente
(macro de función)
INTMAX_C
se expande a una expresión entera constante que tiene el valor especificado por su argumento y el tipo intmax_t
(macro de función)
UINT8_CUINT16_CUINT32_CUINT64_C
se expande a una expresión entera constante que tiene el valor especificado por su argumento y el tipo uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t respectivamente
(macro de función)
UINTMAX_C
se expande a una expresión entera constante que tiene el valor especificado por su argumento y el tipo uintmax_t
(macro de función)
#include <stdint.h>
UINT64_C(0x123) // puede expandirse a 0x123ULL o 0x123UL


[editar] Constantes de formato en macro

Definido en el archivo de encabezado <inttypes.h>

[editar] Constantes de formato para la familia de funciones fprintf

Equivalente
para int o
unsigned int
Descripción Macros para tipos de datos




[u]intx_t




[u]int_leastx_t
[u]int_fastx_t
[u]intmax_t
[u]intptr_t
x = 8, 16, 32 or 64
d salida de un valor entero decimal con signo PRIdx PRIdLEASTx PRIdFASTx PRIdMAX PRIdPTR
i PRIix PRIiLEASTx PRIiFASTx PRIiMAX PRIiPTR
u salida de un valor entero decimal sin signo PRIux PRIuLEASTx PRIuFASTx PRIuMAX PRIuPTR
o salida de un valor entero octal sin signo PRIox PRIoLEASTx PRIoFASTx PRIoMAX PRIoPTR
x salida de un valor entero hexadecimal en minúsculas sin signo PRIxx PRIxLEASTx PRIxFASTx PRIxMAX PRIxPTR
X salida de un valor entero hexadecimal en mayúsculas sin signo PRIXx PRIXLEASTx PRIXFASTx PRIXMAX PRIXPTR

[editar] Constantes de formato para la familia de funciones fscanf

Equivalente
para int o
unsigned int
Descripción Macros para tipos de datos




[u]intx_t




[u]int_leastx_t
[u]int_fastx_t
[u]intmax_t
[u]intptr_t
x = 8, 16, 32 or 64
d entrada de un valor entero decimal con signo SCNdx SCNdLEASTx SCNdFASTx SCNdMAX SCNdPTR
i entrada de un valor entero con signo (la base se determina por los primeros caracteres analizados) SCNix SCNiLEASTx SCNiFASTx SCNiMAX SCNiPTR
u entrada de un valor entero decimal sin signo SCNux SCNuLEASTx SCNuFASTx SCNuMAX SCNuPTR
o entrada de un valor entero octal sin signo SCNox SCNoLEASTx SCNoFASTx SCNoMAX SCNoPTR
x entrada de un valor entero hexadecimal sin signo SCNxx SCNxLEASTx SCNxFASTx SCNxMAX SCNxPTR

[editar] Ejemplo

#include <stdio.h>
#include <inttypes.h>
 
int main(void)
{
    printf("%zu\n", sizeof(int64_t));
    printf("%s\n", PRId64);
    printf("%+"PRId64"\n", INT64_MIN);
    printf("%+"PRId64"\n", INT64_MAX);
 
    int64_t n = 7;
    printf("%+"PRId64"\n", n);
}

Posible salida:

8
lld
-9223372036854775808
+9223372036854775807
+7

[editar] Véase también

Documentación de C++ para Tipos de enteros de ancho fijo