Variablendeklaration µVision3

#1862105
Lesenswert?

Also ich habe es bisher immer so gemacht, dass ich eine globale 
Variable, auf welche von unterschiedlichen c Dateien zugegriffen werden 
soll, immer in einer c Datei deklariere und dann per h-file allen 
anderen bekannt mache.

Meine Variante sieht so aus:

1. C Datei (1.c)
1
#include <1.h>
2

3
unsigned int global_var_xyz;
4
...

1. Header Datei (1.h)
1
#ifndef EINS_H
2
  #define EINS_H    //H-File Bezeichner
3
  extern unsigned int global_var_xyz;
4
#endif

Nun kannst du in jeder C Datei die Header Datei 1.h per #include 
einbinden und auf die Variable "global_var_xyz" zugreifen. Vieleicht 
kannst du die Zeile "unsigned int global_var_xyz;" auch in die Header 
Datei auslagern, aber das musst du selber testen. Das #ifndef ist dafür 
da, damit die "extern" Bekanntmachung nicht bei jedem erneuten Einbinden 
der Header Datei erzeugt wird (sonst gibt es Fehlermeldungen beim 
Compilieren).
So wie ich es geschrieben habe funktioniert es bei mir zuverlässig.

Ciao,
     Rainer
#1862192
Lesenswert?

Ich habe eben mal etwas nachgelesen, was genau der Unterschied zwischen 
<> und "" ist. Und hier ist der Abschnitt in der Doku diesbezüglich:
1
For #include "filename.h" the Compiler searches first the current
2
folder and then folder of the source file. When this fails or when #include
3
<filename.h> is used, the paths specified in the include paths box are
4
searched. When this still fails, the paths specified in for the INC folder
5
under Project - Components, Environment, Books ... are used.

Also ich denke, das es in den meisten Fällen keinen Unterschied macht, 
was man nun verwendet. ;)

Ciao,
     Rainer

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren