Hallo!
Ja, ich habe lange die Suchfunktion benutzt, aber bekomme nun langsam
Gehirnerweichung.
Im Programm ist eine simple struct deklariert, die Werte sollen gleich
mit zugewiesen werden:
typedef struct button{
unsigned int x1;
unsigned int y1;
unsigned int x2;
unsigned int y2;
};
struct button neu={100,100,150,125};
void zeichne(void){
GLCD_Rectangle(neu.x1,neu.y1,neu.x2,neu.y2);
}
Aus mir unerklärlichen Gründen sind die Werte aber nicht gesetzt. Mit
folgender etwas mühsamerer Methode funktioniert es aber:
typedef struct button{
unsigned int x1;
unsigned int y1;
unsigned int x2;
unsigned int y2;
};
struct button neu;
void zeichne(void){
neu.x1=100;
neu.y1=100;
neu.x2=150;
neu.y2=125;
GLCD_Rectangle(neu.x1,neu.y1,neu.x2,neu.y2);
}
Alles scheint lehrbuchmäßig richtig zu sein, aber irgendwo ist der Wurm
drin. Weiß jemand einen Rat?
Verwendet wird MPLAB IDE v8.50 mit C18.
Dank für Hilfe!
ulf.
Ulf Hsm. schrieb: > typedef struct button{ > unsigned int x1; > unsigned int y1; > unsigned int x2; > unsigned int y2; > }; > > struct button neu={100,100,150,125}; Was macht da das typedef? Der Compiler nörgelt nicht? Wenn Du typedef benutzen willst, dann darf das so aussehen:
1 | typedef struct |
2 | {
|
3 | unsigned int x1; |
4 | unsigned int y1; |
5 | unsigned int x2; |
6 | unsigned int y2; |
7 | } button_t; |
8 | |
9 | button_t neu = {100, 100, 150, 125}; |
Ob das des Problems Ursache ist, vermag ich natürlich nicht zu sagen.
Es ist des Problems Ursache leider nicht. Ob ich das "typedef" verwende oder nicht, alles ist wie gehabt. Dem Compiler scheint's egal zu sein. ulf.
Das Problem scheint gelöst zu sein:
Die Strukturvariable kann man zwar außerhalb einer Funktion zuweisen,
aber die Definition mit Wertzuweisung muß innerhalb einer Funktion
erfolgen. So jedenfalls funktioniert es nun:
struct button{
unsigned int x1;
unsigned int y1;
unsigned int x2;
unsigned int y2;
};
void zeichne(void){
struct button neu={100,100,150,125};
GLCD_Rectangle(neu.x1,neu.y1,neu.x2,neu.y2);
}
Rätselhaft ist mir nur, warumm der Compiler zwar die Strukturvariable
zugewiesen, aber die Werte ohne Fehlermeldung ignoriert hat.
ulf.
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.