Was ist der Unterschied zwischen dem, wie der Datentyp char in 32bit vs 64bit in C gespeichert oder dargestellt?

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

  •  20-09-2019
  •  | 
  •  

Frage

Was ist der Unterschied zwischen dem, wie der Datentyp char in 32bit vs 64bit in C gespeichert oder dargestellt?

War es hilfreich?

Lösung

Es gibt keinen Unterschied.
Ein Zeichen belegt ein Byte.
Ein Byte hat CHAR_BIT Bits.

#include <limits.h>
#include <stdio.h>

int main(void) {
    printf("a char occupies 1 byte of %d bits.\n", CHAR_BIT);
    return 0;
}

Andere Tipps

Ein möglicher Unterschied ist, dass Zeichen möglicherweise auf 64-Bit ausgerichtet werden, statt 32-Bit-Grenzen.

struct {
  char a;
  char b;
}

Vielleicht nehmen 2 * 4 Bytes auf 32-Bit und 2 * 8 Bytes auf 64-Bit.

bearbeiten -actually wäre es nicht. Jeder vernünftige complier würde eine Struktur mit nur Zeichen auf Byte-Grenze umpacken. Wenn Sie jedoch hinzugefügt, um eine ‚long c;‘ Am Ende könnte alles passieren. Deshalb a) Sie haben sizeof () und b) sollten Sie vorsichtig sein, machen die manuelle Zeiger Sachen in c.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top