mikrocontroller.net

Forum: Compiler & IDEs error: expected identifier or '(' befor numeric constant


Autor: neeeewbiebie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: hans Kopf (bussard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
code ??
sprache - vermute mal C
compiler ?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> weiss jemand vielleicht woran es liegen kann

Du musst vor der Zahlenkonstante "(" oder einen Bezeichner schreiben?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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?

Autor: neeeewbiebie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>...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){
:

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
DispData = DispFL6;
SeriellSenden(0);
DispData = Zeichen_l;  // <===
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.

Autor: neeeewbiebie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> die Zeile sind 336 und 346

Der von Dir gepostete Code hat 302 Zeilen.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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
#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 :)

Autor: neeeewbiebie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: neeeewbiebie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> 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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwo in deinen Include-Dateien steht vermutlich
#define TestTasteZwei irgendetwas

oder
#define TestTasteZwei() irgendetwas

Gleiches gilt für TestTasteDrei

Autor: neeeewbiebie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die sind eine Menge

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>die sind eine Menge

#include "Display.h"
#include "Initialisierung.h"


Die beiden sollten reichen. Der Fehler liegt vermutlich darin.

Autor: neeeewbiebie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
okay
hier ist Display.h

Autor: neeeewbiebie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ich gesagt habe:

Initialisierung.h:
#define TestTasteZwei                3
#define TestTasteDrei                4

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... 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:
void 3() {
...
}

void 4() {
...
}

So war das sicher nicht beabsichtigt :)

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: neeeewbiebie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hee Mann :-) respekt, darin lag es
bessten Dank

nun sind neue Fehler aufgetaucht, die versuche dann zu lösen.

Danke an alle =:)

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schmeiß die ganzen unnötigen defines raus!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.