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