Partager via


Constantes globales en C++

Mise à jour : novembre 2007

Global Constants in C++

Les constantes globales en C++ sont à liaison statique. Cela est différent de C. Si vous tentez d'utiliser une constante globale en C++ dans plusieurs fichiers, vous obtenez une erreur externe non résolue. Le compilateur optimise les constantes globales, et ne laisse pas d'espace réservé pour la variable.

Cette erreur peut être résolue en incluant les initialisations de constantes dans un fichier d'en-tête pour inclure cet en-tête dans vos fichiers CPP quand c'est nécessaire, comme s'il s'agissait d'un prototype de fonction. Une autre possibilité consiste à rendre la variable non constante et à utiliser une référence à une constante pour l'utiliser.

L'exemple suivant génère l'erreur C2019 :

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

int main() {
   test();
}

Ensuite,

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

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

Voir aussi

Référence

Erreur des outils Éditeur de liens LNK2019