Christian Seiler: (C) Gültigkeitsbereich von Variablen wie verwenden?

Beitrag lesen

Hallo Markus,

In den Funktionen muss ich wieder alles entwurschteln und dereferenzieren. Macht man das so, oder sollte ich besser (auf diese C-Datei beschränkte) globale Variablen verwenden, die ich dann in jeder Funktion problemlos ansprechen kann, da ich ja ohnehin die Variablen funktionsübergreifend behandeln muss?

Kommt darauf an, was Du erreichen willst. Immer dann, wenn Du Code wiederverwenden willst sind globale Variablen eine sehr schlechte Idee. Mal ein Beispiel:

Du schreibst irgend ein kleinen C-Codeschnipsel, der ein bestimmtes GUI-Fenster bereitstellt (z.B. ein Statusanzeigefenster mit Fortschrittsbalken). Wenn Du dort globale Variablen verwendest, z.B. um den Fortschritt-Prozentsatz zu speichern, dann bekommst Du Probleme, sobald Du mehr als eines von diesen Fenstern öffnen willst, denn dann kommen sich die beiden Dinge in die Quere.

Es gibt natürlich auch Fälle, wo man Code nicht wiederverwenden können will und man sich eine Menge Arbeit spart, in dem man globale Variablen verwendet. Und in sehr seltenen Fällen sind sie auch nötig.

Von daher wäre mein Rat: Vermeide globale Variablen wenn es möglich ist - aber verbeiße Dich dabei nicht.

Viele Grüße,
Christian

--
Mein "Weblog" [RSS]
Using XSLT to create JSON output (Saxon-B 9.0 for Java)
»I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
            -- Kommentar bei TDWTF