000
29.10.2007, 22:46 Uhr
jdelmour
|
Hallo liebe Experten
ich kämpfe mit folgendem Problem:
wie legt man eine statische Variable in einem Header-File an, dessen Inhalt in allen CPP auch das gleiche sein soll?
Ich habe in einer Header-Datei folgende Variable definiert:
static int verbose_mode = 0;
Diese Header-Datei wird von allen anderen Dateien includiert, da sie zentrale Definitionen wie DEFINES und Types enthält. Unter anderem enthält sie ein DEFINE, das die statische Variable verbose_mode auswertet und in Abhängigkeit der Werte eine Funktion ausführt oder halt nicht.
Wenn ich jetzt in der main() dieser Variable einen Wert zuweise, innerhalb einer anderen CPP-Datei aber auf diese variable zugreife, erhalte ich 0, und nicht den vorher zugewiesenen Wert. Erst, wenn ich innerhalb der CPP den Wert nochmals zuweise, erhalte ich auch an dieser Stelle den zugewiesenen Wert zurück.
Sprich: je nach dem, von wo aus das o.g. DEFINE ausgeführt wird (bzw dessen Inhalt), gibt es verschiedene verbose_mode-Werte.
Die Variable ist im gesamten Projekt nur einmal definiert. Bis jetzt habe ich das Problem immer dadurch umschifft, das ich alle "globalen Variablen" immer als Pointer auf eine Klasse mit mir herumgeschlept habe. Jetzt möchte ich das Problem aber mal "richtig" angehen und eine vernünftige Lösung erarbeiten.
Ich arbeite mit KDevelop 3.3.5 unter Linux 2.6.18 und mit GMake/GCC.
Wie behebt man das Problem?
Viele Grüße, und vielen Dank im Voraus JDelmour
PS: bloß gut, das ich den Text vor Abschicken noch in die Zwischenablage kopiert habe. Denn nach Abschicken kam die Fehlermeldung "Subject zu lang", und nach "zurück" war der Text weg Dies nur als freundlicher Hinweis an die Foren-Admins |