Hallo, ich habe eine kleines Sytaxproblem und stehe scheinbar auf dem Schlauch. Ich hab mir eine reihe von Konstanten definitert die ich in einen array reinhauen will (siehe unten). Aber wenn ich das mache bekomme ich eine fehlermeldung die da lautet: ../moveLib.c:65: error: initializer element is not constant ../moveLib.c:65: error: (near initialization for 'forwoard[0][0]') und das für jedes Element meines arrays. Hat jemand eine Idee? Schonmal vielen Dank :-) const u08 HIPP_1_FRONT=120; const u08 HIPP_1_MIDDEL=128; const u08 HIPP_1_BACK=140; const u08 KNEE_1_UP = 120; const u08 KNEE_1_DOWN = 140; const u08 HIPP_2_FRONT=120; const u08 HIPP_2_MIDDEL=128; const u08 HIPP_2_BACK=140; const u08 KNEE_2_UP = 120; const u08 KNEE_2_DOWN = 140; const u08 HIPP_3_FRONT=120; const u08 HIPP_3_MIDDEL=128; const u08 HIPP_3_BACK=140; const u08 KNEE_3_UP = 120; const u08 KNEE_3_DOWN = 140; const u08 HIPP_4_FRONT=120; const u08 HIPP_4_MIDDEL=128; const u08 HIPP_4_BACK=140; const u08 KNEE_4_UP = 120; const u08 KNEE_4_DOWN = 140; const u08 HIPP_5_FRONT=120; const u08 HIPP_5_MIDDEL=128; const u08 HIPP_5_BACK=140; const u08 KNEE_5_UP = 120; const u08 KNEE_5_DOWN = 140; const u08 HIPP_6_FRONT=120; const u08 HIPP_6_MIDDEL=128; const u08 HIPP_6_BACK=140; const u08 KNEE_6_UP = 120; const u08 KNEE_6_DOWN = 140; const u08 FOOTUP=1; const u08 FOOTDOWN=0; const u08 forwoard[18][18] ={{KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}, {KNEE_1_DOWN, HIPP_1_BACK, KNEE_2_DOWN, HIPP_2_FRONT, KNEE_3_DOWN, HIPP_3_FRONT, KNEE_4_DOWN, HIPP_4_MIDDEL, KNEE_5_DOWN, HIPP_5_MIDDEL, KNEE_6_DOWN, HIPP_6_BACK,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN,FOOTDOWN}};
Für die Initialisierung der Array-Elemente interessiert es den Compiler nicht, dass vor den einzelnen Bezeichnern ein "const" steht. Für den sind das Variablennamen wie jeder andere auch, und die kann man in einer globalen Initialisierung nicht zuweisen. Das ganze macht sowieso wenig Sinn, da man solche Sachen dem Präprozessor überlässt. Das, was Du da versuchst, würde, wenn es funktionieren würde, für jedes Element zweimal den Speicher belegen. Wenn Du nur für Deine Zahlen sinnvolle Namen vergeben willst, dann mach es mit #define. Dadurch wird wenigstens nicht für die Einzelwerte noch extra Speicher belegt. Außerdem gibts dann keine Fehlermeldung mehr.
> Aber wenn ich das mache bekomme ich eine fehlermeldung > die da lautet: > ../moveLib.c:65: error: initializer element is not constant > ../moveLib.c:65: error: (near initialization for 'forwoard[0][0]') > > und das für jedes Element meines arrays. Hat jemand eine Idee? Ja. Es sind keine Konstanten. Eine Variable, die const ist, ist keine Konstante. In C++ wäre das anders.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.