Namespaces
Variants

Type support

From cppreference.net
< c

Véase también type system overview y arithmetic types defined by the language .

Contenidos

Tipos básicos

Tipos básicos adicionales y macros de conveniencia

Definido en el encabezado <stddef.h>
tipo entero sin signo devuelto por el operador sizeof
(typedef)
tipo entero con signo devuelto al restar dos punteros
(typedef)
el tipo de la constante de puntero nulo predefinida nullptr
(typedef)
constante de puntero nulo definida por la implementación
(macro constante)
un tipo con requisito de alineación tan grande como cualquier otro tipo escalar
(typedef)
desplazamiento en bytes desde el inicio de un tipo struct hasta el miembro especificado
(macro de función)
Definido en el encabezado <stdbool.h>
bool
(C99) (eliminado en C23)
macro de conveniencia, se expande a _Bool
(macro de palabra clave)
true
(C99) (eliminado en C23)
se expande a la constante entera 1
(macro constante)
false
(C99) (eliminado en C23)
se expande a la constante entera 0
(macro constante)
__bool_true_false_are_defined
(C99) (obsoleto en C23)
se expande a la constante entera 1
(macro constante)
Definido en el encabezado <stdalign.h>
alignas
(C11) (eliminado en C23)
macro de conveniencia, se expande a la palabra clave _Alignas
(macro de palabra clave)
alignof
(C11) (eliminado en C23)
macro de conveniencia, se expande a la palabra clave _Alignof
(macro de palabra clave)
__alignas_is_defined
(C11) (eliminado en C23)
se expande a la constante entera 1
(macro constante)
__alignof_is_defined
(C11) (eliminado en C23)
se expande a la constante entera 1
(macro constante)
Definido en el encabezado <stdnoreturn.h>
noreturn
(C11) (obsoleto en C23)
macro de conveniencia, se expande a _Noreturn
(macro de palabra clave)

Tipos de enteros de ancho fijo (desde C99)

Límites numéricos

Notas

El tipo de true y false es int en lugar de _Bool .

Un programa puede anular la definición y quizás luego redefinir las macros bool , true y false . Sin embargo, esta capacidad es una característica obsoleta.

(desde C99)
(hasta C23)

El tipo de true y false es bool . No está especificado si alguno de bool , _Bool , true , o false está implementado como una macro predefinida.

Si bool , true , o false (pero no _Bool ) está definido como una macro predefinida, un programa puede anular su definición y quizás redefinirla.

(desde C23)

Ejemplo

#include <stdalign.h>
#include <stdbool.h>
#include <stdio.h>
int main(void)
{
    printf("%d %d %d\n", true && false, true || false, !false);
    printf("%d %d\n", true ^ true, true + true);
    printf("%zu\n", alignof(short));
}

Salida posible:

0 1 1
0 2
2

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.15 Alineación <stdalign.h> (p: TBD)
  • 7.18 Tipo booleano y valores <stdbool.h> (p: TBD)
  • 7.19 Definiciones comunes <stddef.h> (p: TBD)
  • 7.23 _Noreturn <stdnoreturn.h> (p: TBD)
  • 7.31.9 Tipo booleano y valores <stdbool.h> (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.15 Alineación <stdalign.h> (p: 196)
  • 7.18 Tipo booleano y valores <stdbool.h> (p: 210)
  • 7.19 Definiciones comunes <stddef.h> (p: 211)
  • 7.23 _Noreturn <stdnoreturn.h> (p: 263)
  • 7.31.9 Tipo booleano y valores <stdbool.h> (p: 332)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.15 Alineación <stdalign.h> (p: 268)
  • 7.18 Tipo booleano y valores <stdbool.h> (p: 287)
  • 7.19 Definiciones comunes <stddef.h> (p: 288)
  • 7.23 _Noreturn <stdnoreturn.h> (p: 361)
  • 7.31.9 Tipo booleano y valores <stdbool.h> (p: 456)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.18 Boolean type and values <stdbool.h> (p: 253)
  • 7.19 Common definitions <stddef.h> (p: 254)
  • 7.26.7 Boolean type and values <stdbool.h> (p: 401)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.1.5 Definiciones comunes <stddef.h>

Véase también

Documentación de C++ para Biblioteca de soporte de tipos