Hallo,
ich möchte wissen ob es möglich ist, mit Hilfe von sizeof (oder anders),
die Größe eines Abschnittes eines Arrays zu ermittlen? Um zu
verdeutlichen was ich meine:
PROGMEM prog_int16_t ledAnimSeq[] =
{
LED1,160,LED1,0,LED8,210,LED8,0,LED7,260,LED7,0,
LED8,210,LED8,0,LED1,160,LED1,0,LED2,210,LED2,0,LED3,260,LED3,0,
LED2,210,LED2,0,LED1,160,LED1,0,LED8,160,LED8,0,LED7,210,LED7,0,
LED7,210,LED7,0,LED8,160,LED8,0,LED1,160,LED1,0,LED2,160,LED2,0,
AbschnitAnfang:
LED6,210,LED6,0,LED5,260,LED5,0,
LED3,210,LED3,0,LED4,260,
LED3,110,LED2,110,LED1,110,LED8,110,LED7,110,LED6,110,LED5,110,//140
LED5,110,LED6,110,LED7,110,LED8,110,LED1,0,LED8,110,LED2,0,LED7,110,LED3
,0,
AbschnittEnde:
LED6,110,LED4,0,LED5,110,
LED5,110,LED6,110,LED7,110,LED8,110,LED1,110,LED2,110,LED3,110,LED4,110
};
größeAbschnitt = sizeof(AbschnittEnde-AbschnittAnfang); <-funktioniert
nicht!
Du hast diese Definition echt durch den COmpiler gebracht?
Du siehst mich verblüfft. Ich kann mir nicht vorstellen, dass das so vom
Standard gedeckt ist, dass man mitten in einer Definition ein Label
setzen kann.
Machs anders.
definiere dir 3 Arrays. Dann kannst du von jedem einzelnen leicht die
Anzahl der Einträge bestimmen.
...nein, ich habe diese Definition nicht durch den Compiler gebracht,
sondern ich hätte diese Definition gerne durch den Compiler gebracht!
Deine Lösung ist leider für mich suboptimal!
Ich habe früher (lang ist's her) viel in C programmiert, und meine mich
zu erinnern, dass es eine Möglichkeit (mit Hilfe von Markern) gibt, die
Größe eines Array-Abschnittes zu bestimmen!? Vielleicht war es auch eine
Compiler-spezifische Lösung!?
MichaDi schrieb:> ...nein, ich habe diese Definition nicht durch den Compiler gebracht,> sondern ich hätte diese Definition gerne durch den Compiler gebracht!> Deine Lösung ist leider für mich suboptimal!
Warum?
Das ist mehr oder weniger die Standardlösung, mit der man so etwas
macht: Daten in mehrere Bereiche aufteilen. Ich weiß ja nicht was das
ganze soll, aber ich rate mal es handelt sich um einen Prolog, einen zu
wiederholenden Teil und einen Epilog
Natürlich kann man das auch noch weiter treiben, indem man Prolog, Body
und Epilog wieder in einer Struktur zusammenfast, mit Pointer auf die
Daten. Ab dort stehen Tür und Tor offen.
> Ich habe früher (lang ist's her) viel in C programmiert, und meine mich> zu erinnern, dass es eine Möglichkeit (mit Hilfe von Markern) gibt, die> Größe eines Array-Abschnittes zu bestimmen!?
Nicht das ich wüsste.
MichaDi schrieb:> und meine mich zu erinnern,
Wenn man erst mal die Zeiger oder Indices hat, dann kann man mit
einfacher Subtraktion den Abstand ermitteln (gemessen in Anzahl der
Elemente).
Vielleicht hast du sowas im Kopf?