Verwendung derselben Variablen für mehrere Dateien in C ++

7

Beim Ändern von Code habe ich einige Funktionen in mehrere Dateien ausgelagert. Ich habe die Dateien controls.cpp und display.cpp und ich möchte in der Lage sein, Zugriff auf den gleichen Satz von Variablen in beiden Dateien zu haben. Es macht mir nichts aus, wo sie initialisiert oder deklariert werden, solange die Funktionen in beiden Dateien sie benutzen können.

Das war kein Problem, wenn die Funktionen in der gleichen Datei waren, aber jetzt scheint es fast unmöglich nach einer Stunde Googeln und Versuchen verschiedener Dinge.

    
Sam152 30.03.2010, 11:51
quelle

5 Antworten

17

Definieren Sie die Variable in einer Datei wie:

%Vor%

Und deklariere es global in der anderen Datei wie:

%Vor%     
codaddict 30.03.2010, 11:54
quelle
6

Verwenden Sie diese Variablen als extern d. h.

%Vor%

in einer anderen Datei deklariert dasselbe wie normale globale Variable ...

%Vor%     
mihir mehta 30.03.2010 11:53
quelle
4

Erstellen Sie zwei neue Dateien:

  1. So etwas wie Globals.h und alle Variablen deklarieren wie: extern type name;
    • Übrigens: Wächter.
  2. Etwas wie Globals.cpp und deklarieren Variablen wie: type name;

Fügen Sie dann #include "Globals.h" am Anfang von:

hinzu
  • Globals.cpp
  • controls.cpp
  • display.cpp

Sie können dann möchten, dass einige Funktionen sie initialisieren.

    
quamrana 30.03.2010 12:52
quelle
2

Im Wesentlichen müssen Sie die Variable nur einmal in einer Codedatei deklarieren und sie in den anderen als extern deklarieren (achten Sie darauf, sie NICHT zu initialisieren, wenn Sie sie extern deklarieren, oder einige Compiler ignorieren das extern-Schlüsselwort, Ihnen Compilerfehler geben.)

Das einfachste Verfahren ist die Verwendung eines Makros in einer Header-Datei, beispielsweise:

%Vor%

und deklarieren Sie dann Ihre Variablen in der gleichen Header-Datei wie:

%Vor%

Geben Sie aus einer beliebigen ONE-Datei im Projekt die Header-Datei ein, etwa:

%Vor%

aus dem ganzen Rest, einfach einfach normal, wie folgt:

%Vor%

Presto, du bist fertig. Variablen werden nur einmal deklariert und inline initialisiert. Dies ist sehr wartungsfreundlich und erspart Ihnen die Mühe, alles zweimal deklarieren zu müssen.

    
BrainSlugs83 23.07.2011 18:02
quelle
-1

Alle Deklarationen, die in mehreren Kompilierungseinheiten (.cpp-Dateien) angezeigt werden sollen, sollten in eine Headerdatei aufgenommen werden, die Sie an allen Stellen einfügen, die die Variable, den Typ, die Klasse usw. verwenden müssen.

Dies ist weitaus besser als extern, was im Wesentlichen Ihre Absicht verbirgt, die Deklaration zu teilen.

    
simong 30.03.2010 12:47
quelle

Tags und Links