Ist es möglich #define aus anderen cpp-Datei?
Ich denke, dass der Präprozessor verarbeitet Dateien eins nach dem anderen und ich kann nicht herausfinden, wie es zu tun mit umfasst, so denke ich, dass es unmöglich ist, aber es wäre toll zu hören, andere Gedanken.
Habe ich in a.cpp
:
#define A 1
und ich will es aus 2.cpp
.
BEARBEITEN:
Ich kann nicht ändern, die erste Datei. So, für jetzt habe ich nur kopiert definiert. Aber Frage ist immer noch geöffnet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Definiert innerhalb einer source-Datei sind nicht gesehen von anderen übersetzungseinheiten. Umsetzung Dateien, die separat kompiliert werden.
Können Sie entweder
extern const int A = 1;
in eine Implementierung-Datei und deklarieren Sie es, wenn Sie es verwenden möchtenextern const int A;
.Dieser, ich würde sagen, die erste option ist die denkbar schlechteste, die Sie verwenden können.
Wenn Sie möchten, zu teilen definieren, die zwischen zwei source-Dateien, verschieben Sie es an eine header-Datei aufnehmen und diesen header sowohl Quell-Dateien.
mydefines.h:
source1.cpp:
source2.cpp:
Könnten Sie auch angeben, die definieren, die in der compiler-Befehlszeile. Das kann fummelig zu erhalten, für cross-Plattform-code, der (möglicherweise müssen Sie verschiedene Befehlszeilen für verschiedene Compiler) obwohl.
Würden Sie benötigen, um Ihre
#define
in eine header-Datei, die dann#include
d durch die beiden cpp-Dateien.Wie ein Weg - die Verwendung von extern const-Variablen.
Beispiel:
Datei1.h (wo Sie Definitionen)
Datei2.h (wo Sie Definitionen)
Pro & Contra:
(+): Sie können einige Werte definiert
(-): ALLE Definitionen müssen festgelegt werden