Tout d'abord, posez une question
Il est dit dans les livres et en ligne qu'après avoir ajouté de la statique à une variable, la portée est le fichier actuel, et sans ajouter de portée, c'est l'ensemble du projet
Cela signifie-t-il que les variables avec de la statique ajoutée ne peut être utilisé que dans ce fichier ?
J'utilise un fichier pour stocker des variables globales. Je dois utiliser cette variable globale à plusieurs endroits. Selon le livre, elle ne devrait pas être statique, mais elle apparaîtra
.错误 LNK2005 1 "XXX" (XXX) 已经在 XXX
J'ai ajouté de la statique et il n'y a eu aucun problème
J'utilise VS2017
Veuillez expliquer ce problème, puis-je utiliser cette méthode pour stocker la situation globale ?
Cela signifie-t-il que les variables ajoutées avec static ne peuvent être utilisées que dans ce fichier ? Oui.
Vous pouvez utiliser les variables globales comme vous le souhaitez dans le code normal, mais dans les projets réels, les variables globales peuvent être utilisées aussi longtemps que vous le pouvez, rappelez-vous ceci. Votre approche consistant à "mettre toutes les variables globales dans un seul fichier" n'est donc pas recommandée.
Votre rapport d'erreur doit être dû à une redéfinition. La variable globale est redéfinie lors du processus de lien obj, car la variable globale est un attribut de lien externe, visible par tous les fichiers.
Quel fichier a besoin de cette variable, vous pouvez le rendre statique. Si d'autres fichiers ont besoin de la valeur de cette variable, vous pouvez mettre cette variable dans la classe pour en faire une variable membre statique de classe, puis inclure le fichier directement, A : x référence C'est tout.