Variablendeklaration µVision3

#1862105
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
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.