H.O: Grejen med enum är just att man INTE ger dom nummer, de inkrementerar själv.
Vill man att de startar på t.ex. 10:
enum {First = 10, Second, Fifteenth};
De får "konstantvärdet" First = 10, Second = 11, Fifteenth = 13.
Saxat igen:
Kod: Markera allt
void Load_Configuration(void)
{
Read_EE_Buffer(0, (BYTE*)&Config, sizeof(Config));
if(Config.Language >= LANG_HIGHEST) Config.Language = LANG_ENGLISH_UK;
if(Config.Ashscrape.Trigger_Level > ASHTRIGGER_WEIGHT_MAX) Config.Ashscrape.Trigger_Level = ASHTRIGGER_WEIGHT_MAX;
}
void Save_Configuration(void)
{
Write_EE_Buffer(0, (BYTE*)&Config, sizeof(Config));
}
Då kan man lägga till eller ta bort värden i Config till man är nöjd och allt flyter med, 'Config' är bara en minnesblock sett från det synpunkt.
Ytterligare en fördel med C:
Jag har filer med kommunikationsdefinitioner, bl.a. en LÅNG snum-lista, den inkluderar jag i dels mitt µC-projekt och dels i Borland C Builder-projektet på PC'n som kommunicerar med µC'n via en COM-port. På det vis har de samma definition att utgå ifrån och kommunikationen fungerar direkt.
Ändrar jag något är det bara att kompilera om båda projekten och de är synkroniserade. Jag har t.o.m. källkodfiler som är gemensamma (räknar om metriska värden till jänkarvärden).
Gör det i PBP...