Die Frage ist, aus wievielen Arrays besteht mein Array? Ich würde hier nun eine 8 erwarten.
1 | |
2 | |
3 | |
4 | |
5 | |
|
Anzeige
|
sizeof() eines ArraysDie Frage ist, aus wievielen Arrays besteht mein Array? Ich würde hier nun eine 8 erwarten.
Verwechselst du eventuell Bits und Bytes? Leider ist meine Kristallkugel schon wieder in der Reparatur, sodass ich nicht erkennen kann, wie IO_DIGITAL genau aufgebaut ist. (Btw.: Konvention für ALLES_GROSS ist, dass man sowas nur für Präprozessormakros benutzt.) Jörg Wunsch schrieb: > Verwechselst du eventuell Bits und Bytes? Naja, aber ich komme da denoch nicht auf 16 vielleicht treibe ich hier auch einfach nur Bullshit, ich könnte ja genauso gut auch "#define NUMBER_OF_IO 8" und das anstelle von sizeof() verwenden > Leider ist meine Kristallkugel schon wieder in der Reparatur, sodass > ich nicht erkennen kann, wie IO_DIGITAL genau aufgebaut ist.
Wie gross sind die "rtcc*" Dinger? sizeof(digital) => gesamte Grösse, nicht Anzahl Elemente sizeof(digital[0]) => Grösse von IO_DIGITAL Wenn man bei Arrays die Anzahl Elemente wissen will, dann nimmt man üblicherweise sowas wie (sizeof(a) / sizeof(a[0])) Stimmt doch: Die Größe von IO_DIGITAL ist
Da das Array acht Elemente enthält, ist es achtmal so groß, also 128 Bytes.
Gast
#3399985
> sizeof(digital[0]) // hingegen gibt 16 zurück ist auch klar weil >typedef struct // 128 Bit >{ >... >} IO_DIGITAL; 128bit = 16 Byte gross ist. Damit ergibt > sizeof(digital) 128 Byte, da 'digital' aus 8 'IO_DIGITAL' Datensätzen mit je 16 Byte besteht
Gast
#3399988
..., da war schon jemand schneller ... Ich glaub ich hab da echt einfach Bit und Byte verwechselt :-) Aber auch nen schöner Zufall das dieses array 8 groß ist. Danke jungs! Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|