Probleme mit Variablen bei C

Gast #454689
Lesenswert?
• ▲
▼
Hallo zusammen.

Ich habe noch ein kleines Problem beim C Programmieren. Ich programmiere 
denn XC866 (8051-Familie). Das Programm ist uVision3.
Die Initialisierung habe ich mit DaVE gemacht. Ich habe diese Sachen 
initialisiert: ADC,UART,IO,T2.
Bei Project Workspace wird das jetzt so dargestellt:

Main.C
ADC.C
UART.C
T2.C
IO.C

Jetzt zu meinem Problem.
Wie muss ich das machen das ich eine Variable über alle Programmteile 
gebrauchen kann? z.B. Beim T2 habe ich einen Zähler(int Zaehler), mit 
diesem möchte ich im Main.C weiterarbeiten.
Dann kommt aber der Fehler "undefined identifiere".
Der ganze Rest funktioniert eigentlich ganz gut.

Gruss und Danke
Matthias
Gast #454692
Lesenswert?
• ▲
▼
Am besten machst Du zur Datei T2.c noch eine Header Datei a la T2.h, in 
der Du die betreffenden funktionen per extern forwärtsdeklarierst:

T2.h:

#ifndef T2_H
  #define T2_H
  extern int Zaehler
#endif

Diese Headerdatei kannst Du dann ins Main.c includen und dann ist der 
Zähler auch im Main verfügbar.

Also:

Main.c:

#include "T2.h"
Gast #454701
Lesenswert?
• ▲
▼
Hallo

Danke für die Antwort. Hat schon funktioniert. Muss ich im C File com T2 
den Eintrag int zaehler; so lassen. Wenn ich ihn lösche kommen 
Warnungen. Es funktioniert aber wenn ich den Eintrag dort stehen lasse.

Gruss und Danke
Gast #454715
Lesenswert?
• ▲
▼
Bitte, bitte.

Ja, Du musst den Eintrag dort stehen lassen.
Aber am besten includest Du die Datei T2.h auch noch in T2.c.

T2.c:

#include "T2.h"

Der Grund ist, dass der Compiler dann die richtigen Fehlermeldungen 
ausgibt, falls die Vorwärtsdeklaration vom Headerfile T2.h nicht mit der 
tatsächlichen Definition in T2.c übereinstimmt.

Wie gesagt ist das im Headerfile nur eine Vorwärtsdeklaration, darum 
brauchts noch die eigentliche Deklaration der Variablen im T2.c File, 
also "int Zaehler;".

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.