Hi Ich tüftle an einem Programm in C18 herum. Momentan hab ich Schwierigkeiten, eine Variable einzurichten, die in allen Funktionen gelten soll. Sie steht jetzt am Anfang von main.c vor den Funktionen. Das Problem ist, dass die Variabel bereits in den Funktionen benötigt wird, die per header-datei (am Anfang von main.c) eingebunden werden. Deshalb bringt der Compiler auch immer für die eingebundenen code-dateien Fehler, dass die Variabel noch nicht definiert sei. lcd.c:162:Error [1105] symbol 'cursor' has not been defined ich hab mich auch durch das microchip c18 tutorial gewühlt, bin aber nicht schlauer geworden. Weiß jemand Rat?
Eigentlich gehören keine Funktionen in Header Dateien. Aber egal, du könntest am Anfang der Headerdatei ein "extern soundso cursor" setzen und damit die Variable deklarieren. Ist zwar ein bisschen von hinten durch die Brust ins Auge, sollte aber gehen.
Du schreibst dir ne Header-Datei, in der die Variable als extern deklariert wird, und bindest diese Date überall ein wo die Variable gebraucht wird.
Mach dich mal (z.B. per Suche hier im Forum) schlau zum Thema Variablendefinition und Variablendeklaration. > dass die Variabel bereits in den Funktionen benötigt > wird, die per header-datei (am Anfang von main.c) eingebunden werden. So werden keine Funktionen eingebunden... Sieh mal nach, wie andere das machen.
ich meinte auch nicht die Funktionen an sich sondern nur der Name, hab mich wohl etwas unglücklich ausgedrückt. Die Funktionen selber liegen in den entsprechenden c files ich versuch mal den Tipp von uwegw, danke inzwischen
Leviathan schrieb: > ich meinte auch nicht die Funktionen an sich sondern nur der Name, hab > mich wohl etwas unglücklich ausgedrückt. Die Funktionen selber liegen in > den entsprechenden c files Das kann dann aber nicht sein. Du hast doch nicht die *.c Files mittels #include eingebunden? http://www.mikrocontroller.net/articles/FAQ#Globale_Variablen_.C3.BCber_mehrere_Dateien
danke Karl Heinz, das Dokument hat wesentlich zum Verständnis beigetragen, nun läuft die Sache :)
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.