Condividi tramite


Costanti globali in C++

Le costanti globali C++ hanno un collegamento statico. Questo è diverso da C. Se si tenta di usare una costante globale in C++ in più file, viene visualizzato un errore esterno non risolto. Il compilatore ottimizza le costanti globali, lasciando spazio riservato alla variabile.

Un modo per risolvere questo errore consiste nell'includere le inizializzazioni const in un file di intestazione e includere tale intestazione nei file CPP quando necessario, proprio come se fosse un prototipo di funzione. Un'altra possibilità consiste nel rendere la variabile non costante e usare un riferimento costante durante la valutazione.

L'esempio seguente genera l'errore C2019:

// global_constants.cpp
// LNK2019 expected
void test(void);
const int lnktest1 = 0;

int main() {
   test();
}

E quindi,

// global_constants_2.cpp
// compile with: global_constants.cpp
extern int lnktest1;

void test() {
  int i = lnktest1;   // LNK2019
}

Vedi anche

Errore degli strumenti del linker LNK2019