hallo, ich habe während der Entwicklung meines Programms einige LEDs zum debuggen genutzt. Nun bin ich fertig und müsste all diese Zeilen auskommentieren oder löschen. ich dachte ich könnte mit . . #ifdef DEBUG LED_PORT ^= 1<<LED3; #endif . . es ein und auschaltbar machen. leider wirft mir der Compiler das hier raus: ../tiny13.c:385: error: 'ifdef' undeclared (first use in this function) ../tiny13.c:385: error: (Each undeclared identifier is reported only once ../tiny13.c:385: error: for each function it appears in.) ../tiny13.c:385: error: expected ';' before 'DEBUG' ../tiny13.c:390: error: stray '#' in program . . .immer so weiter bei allen stellen meldet er Fehler Ich habe das schon desöftern im größeren Stil genutzt um beispielsweise eine ADC Prozedur auszuschalten. Kann ich das nicht immer einfach auch mitten im Program machen? Gibt es eine andere Möglichkeit die Zeilen bei Bedarf einfach wieder zu entkommentieren?
Präprozessor-Anweisungen müssen alleine in einer Zeile stehen, da kannst du keinen Code reinmischen.
1 | #ifdef DEBUG |
2 | LED_PORT ^= 1<<LED3; |
3 | #endif // DEBUG |
..oder sowas zentral..
1 | #ifdef DEBUG |
2 | #define DEBUG_LED_TOGGLE() LED_PORT ^= 1<<LED3 |
3 | #else // DEBUG |
4 | #define DEBUG_LED_TOGGLE() (void)0 |
5 | #endif // DEBUG |
HTH
Jürgen schrieb: > #ifdef DEBUG LED_PORT ^= 1<<LED3; #endif Zeilenumbrüche fehlen
1 | #ifdef DEBUG
|
2 | LED_PORT ^= 1<<LED3; |
3 | #endif
|
Alternativ:
1 | inline void toggleDebugLED () { |
2 | #ifdef DEBUG
|
3 | LED_PORT ^= 1 << LED3; |
4 | #endif
|
5 | }
|
6 | int main () { |
7 | // ...
|
8 | toggleDebugLED (); |
9 | // ...
|
10 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.