Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Globale C++-Konstanten weisen eine statische Verknüpfung auf. Dies unterscheidet sich von C. Wenn Sie versuchen, eine globale Konstante in C++ in mehreren Dateien zu verwenden, erhalten Sie einen nicht behobenen externen Fehler. Der Compiler optimiert globale Konstanten aus, sodass kein Speicherplatz für die Variable reserviert ist.
Eine Möglichkeit, diesen Fehler zu beheben, besteht darin, die Konstinitialisierungen in eine Headerdatei einzuschließen und diesen Header bei Bedarf in Ihre CPP-Dateien einzuschließen, genau so, als wäre es funktionsprototyp. Eine weitere Möglichkeit besteht darin, die Variable nicht konstant zu machen und beim Bewerten einen konstanten Bezug zu verwenden.
Im folgenden Beispiel wird C2019 generiert:
// global_constants.cpp
// LNK2019 expected
void test(void);
const int lnktest1 = 0;
int main() {
test();
}
Und wenn es sich um
// global_constants_2.cpp
// compile with: global_constants.cpp
extern int lnktest1;
void test() {
int i = lnktest1; // LNK2019
}