Forum: Mikrocontroller und Digitale Elektronik Fehler: macro names must be identifiers


von Stefan (Gast)


Lesenswert?

Hallo,

ich bin gerade am verzweifeln. Ich wollte etwas linux und AVR lernen. 
Ich nutze avr-gcc toolchain auf Linux. Bis jetzt habe ich auf Windows 
mit Atmel Studio gearbeitet. Ich habe folgenden Code in meinen candef.h 
(das ist eine reine Definitionsdatei ohne eine .c Datei)
1
//Send CAN
2
#define IDtest 0x113 //std. MSG

beim compilieren bekomme ich den Fehler:
1
candef.h:30:8: error: macro names must be identifiers
2
 #define IDtest 0x113 //std. MSG

Was mache ich falsch? Bei AtmelStudio hat es ohne Probleme funktioniert. 
Muss man die candef.h vielleciht speziell im Makefile erwähnen, da es 
kein .c file hat?

Gruss
Stefan

von hexdump (Gast)


Lesenswert?

Evt. ist das Leerzeichen keins oder das I ist kein I oder so.
Mach mal
1
head -n 33 candef.h | tail -n 6 | hexdump -C

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

so gemacht

von Thomas K. (muetze1)


Lesenswert?

Jupp, zwischen "define" und "IDTest" sind keine Leerzeichen sondern 
anderes. Mal löschen und durch explizite Leerzeichen ersetzen.

(es ist ein no-break space (U+00A0) und kein space (U+0020))

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

Zwischen 0x133 und dem Kommentar sind auch die gleichen ungültigen 
Zeichen.

von Stefan (Gast)


Lesenswert?

krass, hat funktioniert.Jetzt bekomme ich aber anderen Fehler, denn ich 
auch nicht verstehe.
1
main.c:118:4: error: stray ‘\302’ in program
2
    txData.id = idtest;
3
    ^
4
main.c:118:4: error: stray ‘\240’ in program

Was könnte es sein? Wenn ich in google lese auch eine art falsche 
Zeichen, aber was?

von Konrad S. (maybee)


Lesenswert?

Das gleiche Problem vor 'txData'.

von Stefan (Gast)


Lesenswert?

war zu schnel beim schreiben, das leerzeichen zwischen 113 und kommentar 
war drin

Danke Ihr seid die besten

von Thomas K. (muetze1)


Lesenswert?

Ich denke es läuft auf das Gleiche hinaus. Wie wäre es wenn du den 
Source Code Editor mal auf ANSI anstatt umstellst? Dann sollte bei einem 
guten Editor schon viele der ungültigen Zeichen auf die simpleren 
Varianten umgestellt werden. Auch sollte das Probleme in der Zukunft 
verringern.

von Georg G. (df2au)


Lesenswert?

Das sind die gleichen Zeichen wie in dem .h File, x0c2 0xa0. Was nimmst 
du als Editor? Mit den gängigen Programmen muss man sich echt Mühe 
geben, so etwas in den Text zu bekommen.

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
Noch kein Account? Hier anmelden.