Qual è la differenza tra il modo in cui il tipo di dati char è memorizzato o rappresentato in 32 bit vs 64 bit in C?
-
20-09-2019 - |
Domanda
Qual è la differenza tra il modo in cui il tipo di dati char è memorizzato o rappresentato in 32 bit vs 64 bit in C?
Soluzione
Non c'è differenza.
Un char occupa un byte.
Un byte ha bit 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;
}
Altri suggerimenti
Una possibile differenza è che i caratteri potrebbero essere allineati a 64 bit anziché a 32 bit confini.
struct {
char a;
char b;
}
Potrebbe prendere 2 * 4 byte su 32bit e 2 * 8 byte su 64 bit.
modifica -actually non sarebbe. Qualsiasi compilatore sana di mente repack una struct con soli caratteri sul limite di byte. Tuttavia, se è stato aggiunto un 'lungo c;' alla fine tutto può succedere. Ecco perché a) avete sizeof () e b) si deve fare attenzione a fare cose puntatore manuale in c.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow