Share via


Constantes globales en C++

Las constantes globales de C++ tienen una vinculación estática. Esto es diferente de C. Si intenta usar una constante global en C++ en varios archivos, recibirá un error externo sin resolver. El compilador optimiza las constantes globales y no deja espacio reservado para la variable.

Una manera de resolver este error es incluir las inicializaciones const en un archivo de encabezado e incluir ese encabezado en los archivos CPP cuando sea necesario, tal como lo haría si fuese prototipo de función. Otra posibilidad es hacer que la variable no sea constante y usar una referencia constante al evaluarla.

El ejemplo siguiente genera C2019:

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

int main() {
   test();
}

Y luego,

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

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

Consulte también

Error de las herramientas del vinculador LNK2019