sharp lenguaje how ejemplos descargar array c char

how - lenguaje c char



¿Qué cuenta como tipo de personaje en C11? (2)

Lo que realmente pertenece al "tipo de personaje" en C11 - además de char por supuesto?

Para ser más precisos, las excepciones especiales para el tipo de carácter (por ejemplo, a cualquier objeto se puede acceder mediante una expresión lvalue del tipo de carácter - ver §6.5 / 7 en el estándar C11), ¿a qué tipos concretos se aplican? Parece que se aplican a uint8_t e int8_t desde stdint.h , pero ¿esto está garantizado? Por otro lado, gcc no considera a char16_t de uchar.h como un "tipo de carácter".


Sólo char , signed char y unsigned char 1 .

Los tipos uint8_t , int8_t , char16_t , o cualquier tipo en la forma intN_t o charN_t , pueden o no ser sinónimos para un tipo de carácter.

1 (Citado de: ISO / IEC 9899: 201x 6.2.5 Tipos 15)
Los tres tipos char, signed char y unsigned char se denominan colectivamente tipos de caracteres.


char , signed char y unsigned char son los tipos de caracteres en C11. Esto es lo mismo desde C89.

Tratar int8_t (o uint8_t ) como un tipo de carácter tiene muchos problemas.

  1. Ellos son opcionales
  2. Es posible que no existan si CHAR_BIT > 8 .
  3. Definido para funcionar si la implementación utiliza la representación de complemento de 2 (que es la más común). Pero son otras representaciones, a saber, el complemento 1 y la magnitud de signo definidos / permitidos por el estándar C.

Dado que son, si existen, typedef''ed a un tipo existente, probablemente pueda salirse con la int8_t usando int8_t o uint8_t como un tipo de carácter en la práctica. Pero el estándar no garantiza nada y no hay razón para tratarlos como tales de todos modos cuando tienes los tipos de caracteres reales .