¿Cuál es la diferencia entre cómo se almacena o se representa en 32 bits vs 64 bits en C el tipo de datos char?

StackOverflow https://stackoverflow.com/questions/1526510

  •  20-09-2019
  •  | 
  •  

Pregunta

¿Cuál es la diferencia entre cómo se almacena o se representa en 32 bits vs 64 bits del tipo de datos char en C?

¿Fue útil?

Solución

No hay diferencia.
Una carbón ocupa un byte.
Un byte tiene bits de CHAR_BIT.

#include <limits.h>
#include <stdio.h>

int main(void) {
    printf("a char occupies 1 byte of %d bits.\n", CHAR_BIT);
    return 0;
}

Otros consejos

Una de las diferencias es posible que caracteres podrían estar alineados en 64 bits en lugar de los límites de 32 bits.

struct {
  char a;
  char b;
}

puede tardar hasta 2 x 4 bytes en 32 bits y 2 * 8 bytes en 64 bits.

editar -en realidad no lo haría. Cualquier compilador sano juicio vuelva a embalar una estructura con sólo caracteres de límite de byte. Sin embargo si se ha añadido un 'largo c;' al final, cualquier cosa puede pasar. Es por eso que a) tiene sizeof () y b) se debe tener cuidado haciendo cosas puntero manual c.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top