Klatec schrieb:
> Kann mir bitte jemand helfen. Danke.
Als erstes gibst du dem struct Datentyp mal einen eigenen Namen.
1 | struct InputBuffer {
|
2 | unsigned char F;
|
3 | unsigned char A;
|
4 | unsigned char B;
|
5 | };
|
Und erst davon legst du dann ein Array an
1 | struct InputBuffer ucPufDatIn[20];
|
(und da siehst man jetzt auch, warum dieses Prefäxzeugs unsinnig ist.
PufDatIn ist vom Datentyp Array of struct InputBuffer und nicht vom
Datentyp unsigned char.)
Die Strukturdefinition und die extern Version des Arrays kommen ins
Header File, so wie immer
"und in einer *.h"
1 | struct InputBuffer {
|
2 | unsigned char F;
|
3 | unsigned char A;
|
4 | unsigned char B;
|
5 | };
|
6 |
|
7 | extern struct InputBuffer ucPufDatIn[20];
|
und in der main.c inkludierst du diese 'einer *.h' (damit du die
Strukturdefinition zur Verfügung hast) und definierst dann auch das
Array, so dass es tatsächlich angelegt wird
main.c
1 | #include "einer *.h"
|
2 |
|
3 | struct InputBuffer ucPufDatIn[20];
|
4 |
|
5 | int main()
|
6 | {
|
7 | ....
|
8 | }
|
anonyme Strukturen sind (zumindest für dich am Anfang) in den wenigsten
Fällen sinnvoll. Gib dem Zeug einen Namen, dann kannst du es auch öfter
verwenden, weil du dich darauf beziehen kannst.
> Opt.h:79:5: note: previous declaration of 'stPerBgData' was here
Und was hat diese Fehlermeldung jetzt mit dem zu tun, was du präsentiert
hast?