Qual è la differenza tra il modo in cui il tipo di dati char è memorizzato o rappresentato in 32 bit vs 64 bit in C?

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

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

È stato utile?

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
scroll top