Stellen Sie zunächst eine Frage.
In Büchern und im Internet heißt es, dass nach dem Hinzufügen von Statik zu einer Variablen der Bereich die aktuelle Datei ist und ohne Hinzufügen des Bereichs das gesamte Projekt.
Bedeutet das, dass Variablen mit statischem Zusatz hinzugefügt werden? kann nur in dieser Datei verwendet werden?
Ich verwende eine Datei, um globale Variablen zu speichern. Laut Buch sollte sie nicht statisch sein, aber sie wird angezeigt
错误 LNK2005 1 "XXX" (XXX) 已经在 XXX
Ich habe statische Aufladung hinzugefügt und es gab kein Problem Ich verwende VS2017
Bitte erläutern Sie dieses Problem. Kann ich diese Methode zum Speichern der globalen Situation verwenden?
是否意味着 加了static 的变量只能在本文件使用? 是的。
平时的代码全局变量想怎么用就怎么用,但是在实际项目中,全局变量是能不用就不用,记住这一点。所以你的“把所有全局变量放在一个文件”这种做法不可取。
你的报错应该是重定义了,全局变量在进行obj链接过程中出现重定义,因为全局变量是外部链接属性,也就是对所有文件可见。
哪个文件需要这个变量,你可以使其static,如果其它文件需要这个变量的值,你可以把这个变量放进类中使其成为类静态成员变量,然后直接include该文件,A::x 引用即可。