Nabend,
ich versuche gerade einen array vorzubelegen:
1
constint16_tTestArray[179]PROGMEM={
2
3
1,1,1,1,1,1,1,1,1,1,
4
1,1,1,1,1,1,1,1,1,1,
5
1,1,1,1,1,1,1,1,1,1,
6
1,1,1,1,1,1,1,1,1,1,
7
1,1,1,1,1,1,1,1,1,1,
8
1,1,1,1,1,1,1,1,1,1,
9
1,1,1,1,1,1,1,1,1,1,
10
1,1,1,1,1,1,1,1,1,1,
11
1,1,1,1,1,1,1,1,1,1,
12
1,1,1,1,1,1,1,1,1,1,
13
1,1,1,1,1,1,1,1,1,1,
14
1,1,1,1,1,1,1,1,1,1,
15
1,1,1,1,1,1,1,1,1,1,
16
1,1,1,1,1,1,1,1,1,1,
17
1,1,1,1,1,1,1,1,1,1,
18
1,1,1,1,1,1,1,1,1,1,
19
1,1,1,1,1,1,1,1,1,1,
20
1,1,1,1,1,1,1,1,1,1
21
};
Der Array enthält wie man sieht 180 Stellen (hier nur Einsen Testweise).
Die Größe des Arrays habe ich mit 179 definiert, da ja C bei 0 beginnt
und demnach von 0 bis 179 --> 180 Stellen vorhanden sind.
Dennoch meckert der Compiler:
test.c:386: warning: excess elements in array initializer
test.c:386: warning: (near initialization for 'TestArray')
Definiere ich die Größe statt 179 auf 180 ist die Warnung weg. Verstehe
ich aber nicht ganz, da ja C wie gesagt ab 0 initialisiert.
Kann mir das jemand erklären?
Danke.
Daniel schrieb:> Der Array enthält wie man sieht 180 Stellen (hier nur Einsen Testweise).> Die Größe des Arrays habe ich mit 179 definiert, da ja C bei 0 beginnt
... beim Index, da der sich aus dem Offset zum ersten Element ergibt.
> und demnach von 0 bis 179 --> 180 Stellen vorhanden sind.
Genau. Index 0 bis 179, macht eine Größe von 180 Stellen, also mußt du
als Größe 180 angeben.