mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik globale Variable wie definieren?


Autor: Leviathan (Gast)
Datum:

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

Autor: ozo (Gast)
Datum:

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

Autor: uwegw (Gast)
Datum:

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

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

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

Autor: Leviathan (Gast)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Leviathan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke Karl Heinz, das Dokument hat wesentlich zum Verständnis 
beigetragen, nun läuft die Sache :)

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.