2017-07-05 4 views
2

Ich arbeite mit Little-Endian-Prozessor PIC 32 und schaue mir eine Variable an, die vom Typ BOOL ist. Eine Variable wird auf TRUE und die andere auf false initialisiert.Endianess Bezogen auf Prozessor oder Datentyp

static BOOL A = TRUE; 
BOOL static B = FALSE; 

im Gedächtnis, wenn ich im Speicher für Variable A aussehen, zeigt es 32 bit TRUE

Es sieht aus wie der Prozessor eine 32-Bit-Zahl für wahr und falsch und nicht mehr als 8 Bits zuweist nur so bedeutet das seinen Prozessor abhängig. Für ein Array von 6 Elementen vom Typ BOOL, alle auf TRUE gesetzt. Wie würde es gelesen werden? Wird es als 6 Elemente dessen, was im Bild oben gezeigt wird, angezeigt?

+1

Warum nicht versuchen? –

+0

Woher wissen Sie, dass es 32 Bits zuweist? Das sieht wie ein 8-Bit-Bool aus, gefolgt von drei anderen Dingen, die Null sind, wie "B" falsch ist. – tadman

+0

Ist C-Standard und implementierungsabhängig –

Antwort

4

BOOL ist kein Standardtyp. Abhängig davon, wie es in Ihrer Umgebung definiert ist, wahrscheinlich über eine in einer Header-Datei, kann es eine beliebige Ganzzahl sein, einschließlich unsigned char, die 1 Byte oder int verwenden würde, die 4 Bytes auf Ihrem System und andere Größen für andere Architekturen verwenden können.

Verwandte Themen