Quelle est la différence entre la façon dont le type de données char est stocké ou représenté dans 32 bits vs 64 bits en C?

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

  •  20-09-2019
  •  | 
  •  

Question

Quelle est la différence entre la façon dont le type de données char est stocké ou représenté dans 32 bits vs 64 bits en C?

Était-ce utile?

La solution

Il n'y a pas de différence.
Un ombles occupe un octet.
Un octet a 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;
}

Autres conseils

Une différence possible est que les caractères peuvent être alignés sur 64 bits plutôt que des limites 32bit.

struct {
  char a;
  char b;
}

peut prendre jusqu'à 2 * 4 octets sur 32 bits et 2 * 8 octets sur 64 bits.

modifier -en fait il ne serait pas. Tout complier sain d'esprit ne remballer un struct avec seulement sur les caractères limite d'octet. Toutefois, si vous avez ajouté un « long c; » à quoi que ce soit fin pourrait se produire. Voilà pourquoi a) vous avez sizeof () et b) vous devriez faire attention à faire des trucs de pointeur manuel c.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top