Partager via


Constantes globales en C++

Les constantes globales C++ ont une liaison statique. C’est différent de C. Si vous essayez d’utiliser une constante globale en C++ dans plusieurs fichiers, vous obtenez une erreur externe non résolue. Le compilateur optimise les constantes globales en laissant aucun espace réservé à la variable.

Une façon de résoudre cette erreur consiste à inclure les initialisations const dans un fichier d’en-tête et à inclure cet en-tête dans vos fichiers CPP si 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 constante lors de son évaluation.

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

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

int main() {
   test();
}

Enfin,

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

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

Voir aussi

Erreur des outils Éditeur de liens LNK2019