Qual é a diferença entre como o tipo de dados do char é armazenado ou representado em 32 bits vs 64bits em c?

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Qual é a diferença entre como o tipo de dados do char é armazenado ou representado em 32 bits vs 64bits em c?

Foi útil?

Solução

Não há diferença.
Um char ocupa um byte.
Um byte tem bits 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;
}

Outras dicas

Uma possível diferença é que os chars podem estar alinhados com limites de 64 bits em vez de 32 bits.

struct {
  char a;
  char b;
}

Pode ocupar 2 * 4 bytes em 32 bits e 2 * 8 bytes em 64 bits.

Editar -na verdade, não. Qualquer complier sã reembalaria uma estrutura apenas com chars no limite de bytes. No entanto, se você adicionou um 'longo c;' No final, tudo pode acontecer. É por isso que a) você tem sizeof () e b) Você deve ter cuidado fazendo coisas de ponteiro manual em c.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top