struct

Gast #177995
Lesenswert?

hallo,
benötige hilfe bei einem struct im eeprom vom mega16

  //EEPROM-Daten definieren
#define eeprom_data  _attribute_ ((section(".eeprom")))
 struct
 {
   menue1
   menue2
   menue3
 }eeprom_menue   eeprom_data;

wie ist es nun möglich werte dem struct zu übergeben,
die von anfang an im eeprom liegen (initialisierung des eeprom)
werte stehen im xxx.eep

  gruss
   jack
Gast #177998
Lesenswert?

Nö, gnu99 (C99 + GNU-Erweiterungen) ist der Default.  Es ist sowohl
der Default von GCC selbst (falls kein -std= angegeben ist) als auch
die Voreinstellung des WinAVR-Makefile-Templates und damit auch von
Mfile.

Zu bemerken wäre noch, daß GCC den C99-Standard noch nicht vollständig
implementiert, dazu gibt's auf der GCC-Webseite irgendwo einen
Bericht
über den aktuellen Stand.  Dürfte aber im AVR-Umfeld (oder überhaupt
im Microcontroller-Bereich) eher uninteressant sein.
Gast #177999
Lesenswert?

Hmm, laut man page wäre -std=gnu89 der Default.

Allerdings:

$ cat foo.c
struct {
        int i;
        const char *cp;
} foobar = {
        .i = 42,
};
$ avr-gcc -Wall -O -S foo.c
$

Ich denke, daß eher die man page falsch ist als meine Behauptung. ;-)
Gast #178001
Lesenswert?

Das ist in der Tat eigenwillig, ja.  Dort beklagt er sich ausdrücklich
über den fehlenden C99-Modus...  Ah ja, benannte struct-
Initialisierung kann er (seltsamerweise) auch im C89-Modus.  Lediglich
mit -pedantic bemerkt er:

foo.c:5: warning: ISO C90 forbids specifying subobject to initialize

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