Maison > développement back-end > C++ > Comment gérer correctement les variables globales sur plusieurs fichiers sources ?

Comment gérer correctement les variables globales sur plusieurs fichiers sources ?

Mary-Kate Olsen
Libérer: 2024-12-09 08:41:06
original
265 Les gens l'ont consulté

How to Properly Manage Global Variables Across Multiple Source Files?

Gestion des variables globales sur plusieurs fichiers

Introduction

Accès aux variables communes entre les fichiers sources est un aspect essentiel de la conception d’un programme. Cet article examine les approches optimales pour déclarer et accéder à des variables globales dans plusieurs fichiers.

Bonnes pratiques

Pour déclarer une variable globale accessible dans plusieurs fichiers, les étapes suivantes doivent être suivi :

  1. Déclaration du fichier d'en-tête : Déclarez la variable globale comme extern dans un fichier d'en-tête que les deux fichiers sources incluent.

    //common.h
    extern int global;
    Copier après la connexion
  2. Définition du fichier source : Définissez la variable globale dans un seul des fichiers source. Le fichier qui définit la variable ne doit pas inclure le mot-clé extern.

    //source1.cpp
    #include "common.h"
    int global = 42;
    Copier après la connexion

Approches alternatives

Bien que l'approche recommandée consiste à utiliser un extern et une définition unique, il existe des méthodes alternatives qui sont moins souhaitable :

  • Déclaration statique : Déclarer la variable globale comme statique dans le fichier d'en-tête la rendrait interne à chaque fichier source, empêchant ainsi l'accès partagé.
  • Définition directe dans les deux fichiers : Définir la variable globale dans les deux fichiers source créerait plusieurs instances de la variable, ce qui pourrait conduire à conflits.

Exemple de mise en œuvre

Considérons l'exemple suivant :

//source1.cpp
#include "common.h"
int function();
int main() {
  global = 42;
  function();
  return 0;
}

//source2.cpp
#include "common.h"
int function() {
  if (global == 42)
    return 42;
  return 0;
}
Copier après la connexion

En suivant la meilleure pratique consistant à utiliser une déclaration externe et une seule définition, les deux fichiers sources peuvent partager efficacement la variable globale globale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal