PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage uber 'typedef enum'



Arexx-Henk
26.02.2005, 11:14
Hallo Programmierer,

Ich mache ofters ein programmierfehler...
zum Beispiel:

TCCR1A|=(1<<WGM13);

obwohl WGM13 ein bit von TCCR1B ist und nicht von TCCR1A.

Mit
typedef enum{
myWGM10=0x01,
myWGM11=0x02
}teTCCR1A;

typedef enum{
myWGM12=0x08,
myWGM13=0x10
}teTCCR1B;

teTCCR1A myTCCR1A;
teTCCR1B myTCCR1B;

mochte Ich das losen, aber bei

myTCCR1A=myWGM13;

gibt die Compiler keine Fehlmeldung.

Borland C Compiler gibt bei so etwas ein Compile Error

Hat da Jemand ein gutes Idee?

Gruss,

Henk

bluebrother
28.02.2005, 14:37
ähm, mit einem Typedef weist du normalerweise nur neue Werte zu. Also a la
typedef enum { rot, gruen, blau} farbe;
Danach kannst du die Werte für Farbe aber auch verwenden wenn du eine andere Variable hast, weil das dann auch nur wieder Zahlen sind. Ich wüsste nicht wie das was du da vorhast vernünftig funktionieren soll -- es wäre besser einfach die entsprechenden Bit-Defines auszudrucken und neben den Rechner zu hängen.

Arexx-Henk
28.02.2005, 15:27
Ich wüsste nicht wie das was du da vorhast vernünftig funktionieren soll

Jeden moglichen programmierfehler wird so vom compiler beschutzt.

Wenn das Program ganz gross wird, kann man lange suchen nach einem solchen Fehler.

Aber wenn's nicht geht, damit ist zu leben... O:)

MvG

Henk

bluebrother
01.03.2005, 10:01
Jeden moglichen programmierfehler wird so vom compiler beschutzt.

Ähm, nein. Gerade C macht es dir vergleichsweise einfach Müll zu programmieren -- wenn du mal mehr mit Pointern gemacht hast wirst du es gemerkt haben. Basic und Co fangen da wesentlich mehr ab.

Für µC's sehe ich C auch mehr als eine Art höheren Assembler an. C ist halt gerade bei größeren Programmen durchaus anspruchsvoll.