Hallo,
mir ist gerade etwas aufgefallen zur Intialisierung :
Man kann arrays (z.B. vom Typ uint8_t) mit Werten initialisieren :
uint8_t ui8Buffer[4] = {1, 2, 3, 4};
Im array ui8Buffer stehen dann die Werte 1, 2, 3 und 4. Gut. Man kann
auch ein Array zu 0 initialisieren :
uint8_t ui8Zeros[4] = { 0 };
Oder man kann ein array auch unvollständig initialisieren - nach dem
Standard (habe ich jetzt mal reingeschaut) wird dann der Rest mit
Nullen aufgefüllt:
uint8_t ui8Incomplete[4] = {1, 2 };
Im Array steht dann 1, 2, 0 und 0. Wenn jetzt jemand meint, man könnte
mit
uint8_t ui8Ones = { 1 };
ein array mit lauter Einsen darin erstellen, der liegt wohl leider
falsch. Der Compiler sollte anscheinend nach Standard eine 1 in die
erste Zelle des arrays schreiben und den Rest mit Nullen auffüllen. Das
ist zeimlich fies, denn man würde normalerweise denken, dass ui8Ones
analog zu ui8Zeros läuft - dem ist aber nicht so (zumindest im
Standard) ! Also aufgepasst !
MfG, Daniel.
P.S.: Man entdeckt doch immer wieder spannende Sachen ;-)