Hallo zusammen,
ich habe ein Problem und zwar gibt mein Compiler C18 mir einen
Syntaxerror aus bei folgender Zeile:
Dies ist meine Variablen Definition in main.c
1
unsignedchari;
In main.c ist auch noch eine For Schleife, welche auf "i" zugreift.
Außerdem habe ich die Variable zusätzlich noch in main.h deklariert
mit:
1
externunsignedchari;
Da ich die Variable "i" auch noch in anderen .c Dateien benötige, in
denen dann über:
1
#include"main.h"
Auf diese zugegriffen werden kann. Nun weiß einer warum der Compiler
einen Snytax Fehler angibt in der Zeile (s. erstes Codefenster) ?
Gruß
unsigned char schrieb:> Auf diese zugegriffen werden kann. Nun weiß einer warum der Compiler> einen Snytax Fehler angibt in der Zeile (s. erstes Codefenster) ?
Das was du da beschreibst, klingt soweit alles richtig.
Für einen Helfer wichtig wäre daher:
Der genau Text der Fehlermeldung
Ein größerer Ausschnitt aus dem Code. Viele Fehler ergeben sich erst aus
dem genauen Zusammenhang. Daher ist es oft sinnlos nur 1 Zeile zu
zeigen, nämlich die die der Compiler nennt. Wenn es sich nicht einfach
nur um einen simplen Tippfehler handelt, ist diese 1 Zeile meistens
wertlos. Simple Tippfehler siehst du selber aber auch.
Und bitte: Code nicht hier reintippen, sondern entweder per Cut&Paste
einfügen oder einfach überhaupt die ganze Datei als Attachment anhängen.
Das ist für dich einfacher und hat den Vorteil, dass wir 100% exakt
genau den gleichen Code sehen, den auch der Compiler zu Gesicht bekommt.
Oftmals wird nämlich beim Abtippen der fehlerhafte Code vom Tipper
automatisch korrigiert, ohne es selbst zu merken. Und dann suchen wir
uns hier einen Wolf nach Fehlern, die du so im richtigen Code gar nicht
gemacht hast.
Und nochwas. Allerdings mehr programmiertechnischer Natur.
Eine gloable Variable i zu nennen ist eine extrem schlechte Idee.
Variablen die man nur zb für for-Schleifen benötigt, macht man nicht
global. Da ist Ärger vorprogrammiert.
Und andere Variablen, die tatsächlich global sein müssen, nennt man
nicht i. Einbuchstabige Variablennamen reserviert man ausschlieeslich
für kleine Umgebungen wie eben zb for-Schleifen in Funktionen.
Karl heinz Buchegger schrieb:> Einbuchstabige Variablennamen reserviert man ausschlieeslich> für kleine Umgebungen wie eben zb for-Schleifen in Funktionen.
...und definiert sie nicht als char.
unsigned char schrieb:> H:\Programierung\Programmecode\C\Multimedia Modul\main.c:61:Error:> syntax error> Halting build on first failure as requested.
Man mag mich engstrinig nennen. Aber wenn ich die Codezeilen zähle, dann
ist Zeile 61 hier
1
Backlight=1;// Backlight ein
2
3
//Notwendige Funktionen zum Booten <----------------
4
5
GLCD_Initialisierung();
und hat IMHO nichts mit einem i zu tun
Das hier
1
#define Backlight LATCbits.LATC2
stimmt?
(Ich habe keinen PIC Compiler hier. Und das ganz für mich compilierbar
zu machen, ist einiges an Aufwand wobei die Gefahr besteht, dass ich den
Fehler gleich mit ausbaue bzw. auskommentiere)
Grrrrrrrrrrrr
Und das meine ich ernst.
Such dir deinen Fehler selber. Schönen Tag noch.
(Ich setz mich doch nicht eine Viertel Stunde hin und versuch das ganze
soweit compilierbar zu bekommen, dass ich eine vernünftige Fehlermeldung
kriege, nur damit du mir nachher sagst, das das einzige was ich habe,
nämlich die Zeilennummer, gar nicht stimmen kann, weil du in
Wirklichkeit einen anderen Code hast. Verarschen kann ich mich auch
selber)
unsigned char schrieb:> Mh okay, wenn Du so schnell aus der Haut fährst mache ich es vielleicht> wirklich besser selbst. Als wenn es Absicht gewesen wäre.
Ich hab dir vorher eine Warnung zukommen lassen. Ich hab dir genau
geschrieben was du posten sollst und auch warum.
Und nein, ich fahr normal nicht so schnell aus der Haut. Aber es würde
dir auch nicht gefallen, wenn du zum x-ten mal helfen willst und du
hinten nach draufkommst, dass dir der Fragesteller, trotz ausdrücklicher
Warnung, wieder mal Prügel zwischen die Beine wirft.
Zumal dein Compiler nicht wirklich hilfreich ist mit seinem
Syntax-Fehler. Da muss dir doch selber klar sein, dass es für jemand
anderen erst mal Aufwand bedeutet, das bei sich nachzustellen.