Problem mit struct

Gast #521175
Lesenswert?

Hallo!

Ich möchte wegen der besseren Übersicht ein struct verwenden.
Leider scheint der GCC-Compiler damit nich zurecht zu kommen.
Hier mal der Code:
1
struct font
2
{
3
       uint8_t width;
4
       uint8_t height;
5
};
6

7
struct font smallfont;
8

9
smallfont.width = 5;     //*
10
smallfont.height = 8;    //*

Es kommt dieser Fehler, bei den mit "//*" gekenntzeichneten Zeilen 
zustande:
1
error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token

Was mach ich falsch?
Danke
Michael
#521221
Lesenswert?

ahem ...

WO machst Du denn das hier:
1
smallfont.width = 5;
2
smallfont.height = 8;

Das geht vielleicht in Basic, aber in C darfst Du das NUR innerhalb 
einer Funktion machen.

Wenn Du Deine struct initliaisieren willst, dann mach das so:
1
struct font_typ
2
{
3
  uint8_t width;
4
  uint8_t height;
5
};
6

7
struct font_typ smallfont = {5, 8};
P.S.:
Schau Dir mal mein Beispiel oben an. Dort ist in der struct noch ein Ptr 
auf die Graphikdaten. Genauso kannst Du es auch mit Deinem Font machen. 
Dann hast Du Größe und Graphikdaten Deines Fonts nur über Deine struct 
erreichbar:
1
// der Font muss zuerst deklariert werden (oder forward):
2

3
const uint8_t font5x8[]PROGMEM= { 
4
0x00,0x00,0x00,0x00,0x00,  // 0x00
5

6
struct font
7
{
8
  uint8_t width;
9
  uint8_t height;
10
        uint8_t fnt_data[];
11
};
12

13
struct font smallfont = {
14
  5,
15
  8,
16
  font5x8
17
};

Gruß, Stefan
Gast #521229
Lesenswert?

Hallo!

Ich bin mir ziemlich sicher, dass ich das so auch in C verwenden darf.
Oliver kanns ja auch ohne Fehler compilen.
Kann das jemand bestätigen?

Naja wie auch immer. Das hier funktioniert jetzt scheinbar:
1
struct font_typ smallfont = {5, 8};

Danke dafür! :)

Michael
Gast #521247
Lesenswert?

"Ich bin mir ziemlich sicher, dass ich das so auch in C verwenden darf."
Nö. Darfst du nicht.

"Oliver kanns ja auch ohne Fehler compilen."
Nö. Kann ich nicht. Ich hatte das selbstverständlich innerhalb von 
main() getestet.

Globale Initialisierung geht so:
1
struct font smallfont = {5,8};
Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren