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 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.