Hallo Ich versuche mich mit µVision3 vertraut zu machen, aber ich schaffe es nicht eine Variable in einer *.h Datei zu deklarieren und diese in einer oder mehreren *.c Dateien zu verwenden. Kann mir bitte jemand helfen. Danke.
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
B e r n d W. schrieb: > #include "1.h" Ich benutze bei µVision immer <> und keine "". Hatte noch nie Probleme damit. :)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.