undeclared (first use in this function)

Gast #2180085
Lesenswert?
• ▲
▼
Hallo,

mein C ist ein wenig eingerostet und ich habe beim Aufarbeiten meiner 
alten Projekte ein Problem.

Mein Programm hat eine header.h, uart.c und  main.c.

in der Uart.c definierse ich folgende Variable:
1
volatile char uart_string[UART_MAXSTRLEN + 1] = "";

Diese wird dann von der Interrupt routine in der gleichen Datei genutzt.
Nun möchteich sie aber in in der Main.c nutzen dies klapt aber nicht.
1
   if(uart_string[0] == 'a')
2
  {
3
....

Ich bekomme dann folgenden Fehler
1
Fehler  2  'uart_string' undeclared (first use in this function)  C:\...\main.c  20  7  uart1

Ist habe bestimmt irgendwas Grundlegendes vergessen. Vielen Dank
Moderator Persönliche Seite #2180285
Lesenswert?
• ▲
▼
Wenn du dir mal den Unterschied zwischen einer Deklaration und einer
Definition vergegenwärtigst, dann kannst du das auch bereits aus der
Fehlermeldung deuten.

Über die fehlende Deklaration beklagt sich bereits der Compiler,
denn er hat zu dem Zeitpunkt, da er main.c compiliert, keine Kennung
davon erhalten, was denn uart_string für ein Objekt sein soll.  Falls
uart_string jedoch ordnungsgemäß deklariert wäre, am Ende aber in
keiner einzigen Objektdatei zu finden wäre, würde sich der Linker
über eine fehlende Definition dieses Symbols beschweren (Objekte und
Funktionen hält der Linker nur noch bedingt auseinander; für ihn sind
das alles nur noch Symbole, die er auflösen muss, d. h. denen er
letztlich einen Platz in einem Segment zuweist, um damit das Symbol
einer Adresse zuordnen zu können).

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.