una tamaño saber que estructura como arreglo array c char sizeof

tamaño - En C, ¿sizeof mide su resultado en bytes octetos o caracteres?



tamaño array c (3)

Aunque un char se compone de 1 byte en todos los compiladores que conozco, tuve la impresión de que C no garantiza la longitud de un char , solo garantiza que char < short < long . Por lo tanto, asumí que sizeof mide su resultado en char para abstraerse de la plataforma en la que se está ejecutando. Para hacerlo más general, pensé que size_t se define en términos de char .

Pero ahora, en lo que puedo ver buscando en google, parece que sizeof devuelve su resultado en bytes .

¿Estaba completamente equivocado en mi suposición o hay más que eso?


La unidad utilizada por sizeof es el char . Uno de los axiomas del lenguaje es ese sizeof(char) == 1 .

Por lo tanto, para sistemas donde char es mayor que 8 bits, sizeof no mide en unidades de 8 bits.


Las unidades para sizeof son chars.

Sin embargo, C define un byte como el tamaño de un char, y no el uso más común donde un byte equivale a 8 bits.

Si quieres saber cuántos bits es una char, usa la constante CHAR_BIT en <limits.h>


char es el tipo de datos C que representa un byte ; son conceptualmente lo mismo.

Si está preguntando si el resultado siempre está en octetos (valores de 8 bits), la respuesta es no ; está en bytes ( char s), y si un byte tiene un número diferente de bits, entonces el resultado será en términos de múltiplos de esos muchos bits.