Ab wann sollte man globale Variablen nehmen?
-
Gibt es da irgendeine Regel? Zum Beispiel bei window handles, die sehr häufig genutzt werden, wäre es zu einfacher schreiben, wenn man sie einfach global macht.
-
Na ja, am besten gar nicht, würde ich sagen. Du solltest auch window handles eher als Member in einer Klasse packen.
-
Globale Variablen und/oder Singletons nur dort wo es anders nicht geht oder *wirklich* sehr sehr unpraktisch wäre.
Fensterhandles fallen (in normalen Programmen) noch *lange* nicht in diese Kategorie
-
Ich verwende z.B.
HINSTANCE ghinstance_app;schon seit Jahren als global definierte Variable (in Win32-API, in MFC programmiere ich kaum).
So können alle Funktionen (und Unter-Funktionen) bequem darauf zugreifen, ohne daß ich sie als Funktionsparameter "mitschleppen" muß.
Ich wüßte nicht, warum man so eine Variable nicht global machen darf.Martin
-
Man darf ja fast alles.
Nur, damit erzeugst du große Abhängigkeiten. Dein Code ist weniger modular / eigenständig.
Deshalb Globale Variablen vermeiden solange es geht / sinnvoll ist. Bis auf wenige Ausnahmen tut man sich damit selbst einen Gefallen.
-
@Mmacher
Man kann auch GetModuleHandle(0) verwenden um an das instance handle der EXE zu kommen...