Compartir a través de


Constantes globales en C++

Actualización: noviembre 2007

Global Constants in C++

Las constantes globales de C++ tienen vinculación externa. Esto es diferente en C. Si se intenta utilizar una constante global en C++ en varios archivos, se obtiene un error externo no resuelto. El compilador optimiza las constantes globales, sin dejar espacio reservado para la variable.

Un modo de solucionarlo consiste en incluir las inicializaciones de constante en un archivo de encabezado e incluir dicho encabezado en los archivos CPP cuando sea necesario, como si fuera un prototipo de función. Otra posibilidad es hacer no constante la variable y utilizar una referencia de constante al evaluarla.

El ejemplo siguiente genera el error C2019:

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

int main() {
   test();
}

Y, a continuación,

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

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

Vea también

Referencia

Error de las herramientas del vinculador LNK2019