Forum: Compiler & IDEs Variable in mehreren c-Files nutzen


von Andy (Gast)


Lesenswert?

Hallo,
ich habe ein Programm welches mehrere c-Files enthält.
Nun hab ich eine Variable die in der ISR hochgezählt wird und in den 
c-Files verwendet wird.

#include "rgbschow1.h"
#include "rgbschow2.h"

#ifndef RGBSHOW1_H
#define RGBSHOW1_H

extern  void show1( void );

#endif // RGBSHOW1_H

#ifndef RGBSHOW2_H
#define RGBSHOW2_H

extern  void show2( void );

#endif // RGBSHOW2_H

Allerdings bekomme ich immer den Fehler,
error: 'Time' undeclared (first use in this function)
die Varible ist im  Hauptprogramm Deklariert.


volatile unsigned char Time=0;



Wie kann ich das nun umändern das ich die Variable im Hauptprogramm 
sowie auch in den externen c-Files

vielleicht hat jemand einen tipp für mich

von Random .. (thorstendb) Benutzerseite


Lesenswert?

extern

von Andy (Gast)


Lesenswert?

wenn ichs im Hauptprogramm so schreibe extern volatile unsigned char 
Time=0;
dann bekomm ich ein error,undeclared (first use in this function).

Die Variable wird im Hauptprogramm und in den externen c-Files genutzt.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Der Compiler übersetzt jedes C Modul getrennt.
Über die Headerfiles werden dann u.a. fremde Symbole bekanntgemacht.

In deinem Fall muss die var als extern in ein Headerfile eintragen, was 
von allen Files, wo du die var verwenden willst, eingebunden werden 
muss:

extern int var;

In einem der C Module musst du die latürnich anlegen:

int var = 0;

von Karl H. (kbuchegg)


Lesenswert?

Siehe
FAQ: Globale Variablen über mehrere Dateien

bzw. jedes noch so grindige C-Buch.

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
Noch kein Account? Hier anmelden.