Ich arbeite an einem Arduino-Projekt. Ich versuche, eine byte
pointer
an eine function
übergeben, und lassen Sie function
die Größe der Daten berechnen, auf die der Zeiger verweist. Aber wenn ich die Zeiger auf ein Byte verweisen lassen, sizeof()
kehrt 2. Ich schrieb den folgenden Code-Schnipsel zu debuggen, um zu versuchen:Größe des Bytes beim Zugriff über Zeiger
byte b;
byte *byteptr;
byteptr = &b;
print("sizeof(b): ");
println(sizeof(b));
print("sizeof(*byteptr) pointing to byte: ");
println(sizeof(*byteptr));
print("sizeof(byteptr) pointing to byte: ");
println(sizeof(byteptr));
das gedruckte Ergebnis ist:
sizeof(b): 1
sizeof(*byteptr) pointing to byte: 1
sizeof(byteptr) pointing to byte: 2
So ist die Größe eines Bytes ist 1, aber über den Zeiger ist es 2 ??
No. Die Größe des Zeigers selbst ist 2. –
Abschließend auf der Arduino, die Größe eines Zeigers 2 Bytes annimmt. –
... und zählen Sie sich glücklich. Auf meinem Desktop braucht es nicht 2, nicht 4, sondern 8 Bytes, um auf ein einzelnes Byte zu zeigen! Was für eine Abzocke. –