¿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?
-
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?
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