Um eine persistente Variable zu erstellen, ist es besser, eine lokale statische Variable oder eine globale Variable zu haben?

8

Nehmen wir an, Sie haben eine Klasse (C ++) oder ein Modul (einzelne c-Datei). Dann möchten Sie in einer Ihrer Funktionen eine Kopie einer Variablen speichern und ihren Wert behalten, bis das nächste Mal, wenn die Funktion aufgerufen wird, ist es besser, ein globales zu haben (könnte privat in c ++ sein und nicht extern in c bleiben) im Modulbereich) oder eine lokale statische Variable erstellen?

z.B.:

%Vor%

Der Grund, warum ich ein Static machen würde, ist, seinen Umfang so begrenzt wie möglich zu halten, aber bestimmte Dinge, die ich lese, legen nahe, dass Sie Globals dafür verwenden sollten. Jetzt bin ich verwirrt.

Was ist das Beste (falls vorhanden) ?, Vor- / Nachteile?

    
code_fodder 17.10.2013, 08:30
quelle

1 Antwort

10

Die Regel hier ist einfach: Wenn auf die Variable von mehr als einer Funktion zugegriffen werden soll, machen Sie sie global. Wenn nicht, sind static Variablen innerhalb von Funktionen normalerweise besser. Einer der Vorteile ist, dass der globale Namespace nicht verschmutzt wird.

Wenn auf eine globale Variable nicht außerhalb der Datei zugegriffen werden muss, ist es besser, sie als Dateibereichsvariable zu deklarieren (d. h. deklarieren Sie sie als static )

Zurück zu Ihrem Beispiel, ich denke, es ist am besten, static variable zu verwenden, wie Sie es bereits getan haben.

    
Yu Hao 17.10.2013, 08:33
quelle

Tags und Links