hi Leute, ich habe eine kleine Frage, beim Kompilieren eines Codes bekomme ich zweimal die folgende Fehlermeldung: error: expected identifier or '(' befor numeric constant weiss jemand vielleicht woran es liegen kann ??? danke im Voraus
code ?? sprache - vermute mal C compiler ?
> weiss jemand vielleicht woran es liegen kann
Du musst vor der Zahlenkonstante "(" oder einen Bezeichner schreiben?
>weiss jemand vielleicht woran es liegen kann ???
Vermutlich ein Fehler im Programm...
Wie sieht das denn aus?
Für welchen Prozessor ist das geschrieben?
Mit welchem Compiler wird das übersetzt?
Danke für die schnelle Hilfe. :-) Das Programm ist für die serielle Übertragung von Daten zu einem LCD. Das ist einbischen lang weil Befehle und dann Zeichen einzeln und nacheinander geschickt werden. Das ist für ein Tiny45 und wird mit dem Studio 4 compiliert
C-Quelltext wird übrigens deutlich lesbarer, wenn man ihn vernünftig einrückt bzw. formatiert. Diesen Spaghettihaufen zu entwirren habe ich keine sonderliche Lust. Wenn Du jetzt noch die Zeilennummer nennen könntest, in der Dein Compiler den Fehler erkennt ...
>...ist einbischen lang...
Ja, ist es ;-)
Du hast aber nicht wirklich ein define für 5 und 10 angelegt, oder? :-o
:
if (Tausendstel>=Fuenf){
if(++Hundertstel>=Zehn){
:
Wenn das eine ASCII-Fünf ist, dann versuchs doch mal sprintf(). Das macht aus einer Zahl einen String... Und wenns keine ASCII-Fünf ist, dann versuchs doch mal mit sprintf() und ziehe von jedem Zeichen vor dem Ausgeben '0' (ASCII-Null) ab...
Der Fehler lässt sich schwer finden, wenn du uns nicht die Zeile verrätst, für die er gemeldet wird, oder die fehlenden Include-Dateien mitlieferst. Ich habe einen anderen Fehler entdeckt :) Zeilen 190-193:
1 | DispData = DispFL6; |
2 | SeriellSenden(0); |
3 | DispData = Zeichen_l; // <=== |
4 | SeriellSenden(1); |
Müsste an der markierten Stelle nicht ein "Zeichen_a" statt "Zeichen_l" stehen? Entsprechende Anpassungen müssen natürlich auch die nächsten 40 Code-Zeilen gemacht werden.
tut mir leid für das lange Code, aber momentan komme ich nicht weiter habe versucht es zu verkürzen nur leider meine Kenntnisse sind nicht so gross. die Zeile sind 336 und 346 doch Fuenf und Zehn habe ich in einer Headerdatei definiert. #define Zehn 10 #define Fuenf 5
> die Zeile sind 336 und 346
Der von Dir gepostete Code hat 302 Zeilen.
> tut mir leid für das lange Code, aber momentan komme ich nicht weiter > habe versucht es zu verkürzen nur leider meine Kenntnisse sind nicht so > gross. Du hättest ja den Bereich posten können, in dem der Fehler ist, mit der beanstandeten Zeile irgenwie markiert. > doch Fuenf und Zehn habe ich in einer Headerdatei definiert. > #define Zehn 10 > #define Fuenf 5 Wozu um alles in der Welt soll das gut sein? Für den Fall, daß sich fünf mal ändert und auf einmal den Wert 6 hat?
> die Zeile sind 336 und 346 Die Datei hat 331 Zeilen. > #define Zehn 10 > #define Fuenf 5 Schreibst du, wenn du in deinem Programm die Zahl 1396738471 brauchst
1 | #define Einemilliardedreihundertsechsundneunzigmillionensiebenhundertachtunddreissigtausendvierhunderteinundsiebzig 1396738471
|
? Übrigens ist der Wettbewerb, an dem du teilnehmen möchtest, leider seit über einem Jahr schon vorbei: http://www.de.ioccc.org/main.html 'tschuldigung, ist einfach so über mich gekommen :)
also die Seite brauche ich ehh nicht, will nicht an irgendein Wettbewerb teilnehmen ich hätte besser Verbesserungsmöglichkeiten oder ein Rat erwartet und die Fehler Tauchen in der genannten Zeilen auf, wo nix steht
> also die Seite brauche ich ehh nicht, will nicht an irgendein > Wettbewerb teilnehmen ich hätte besser Verbesserungsmöglichkeiten > oder ein Rat erwartet Nichts für ungut, ich habe mich ja schon dafür entschuldigt. Trotzdem spuckt der Compiler keine Fehlermeldungen für Zeilen aus, die jenseits des Endes der Quellcodedatei liegen. Vielleicht ist der Fehler gar nicht in der von dir geposteten Datei, sondern in einer der Include-Dateien, die vielleicht tatsächlich länger ist. Der Dateiname wird direkt vor der Zeilennummer angezeigt. Steht da wirklich disp-init.c:336: error: ... Wenn ja, dann ist die Datei, die du kompiliert hast, mit der geposteten nicht identisch.
ist kein Ding Yalu :-) nur sind diese errors für ein Anfänger ein richtiger Schrek. Ich bekomme genau die Meldung disp-init.c:336: error: ... disp-init.c:349: error: ... > Wenn ja, dann ist die Datei, die du kompiliert hast, mit der > geposteten nicht identisch. Was soll man in so einem Fall tun
>> Wenn ja, dann ist die Datei, die du kompiliert hast, mit der >> geposteten nicht identisch. >Was soll man in so einem Fall tun Die Originale posten. Und zwar alle Dateien. Dann kann man das mal selber durch den Compiler jagen.
Irgendwo in deinen Include-Dateien steht vermutlich
1 | #define TestTasteZwei irgendetwas
|
oder
1 | #define TestTasteZwei() irgendetwas
|
Gleiches gilt für TestTasteDrei
>die sind eine Menge
#include "Display.h"
#include "Initialisierung.h"
Die beiden sollten reichen. Der Fehler liegt vermutlich darin.
Wie ich gesagt habe: Initialisierung.h:
1 | #define TestTasteZwei 3
|
2 | #define TestTasteDrei 4
|
... und in disp_init.c sind zwei Funktionen mit diesem Namen definiert. Der Präprozessor ersetzt die Namen durch "3" bzw. "4", so dass dasteht:
1 | void 3() { |
2 | ...
|
3 | }
|
4 | |
5 | void 4() { |
6 | ...
|
7 | }
|
So war das sicher nicht beabsichtigt :)
Vielleicht benennst du die Funktionen TestTasteZwei und TestTasteDrei um in DispTestTasteZwei und DispTestTaste3. Diese Namen passen auch besser zu DispInitialisierung und DispAnzeigeMessung, bei denen es auf Grund des Prefixes Disp keinen Konflikt mit den entsprechenden Defines in Initialisierung.h gibt.
Hee Mann :-) respekt, darin lag es bessten Dank nun sind neue Fehler aufgetaucht, die versuche dann zu lösen. Danke an alle =:)
Schmeiß die ganzen unnötigen defines raus!!
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.