extern ist eine Möglichkeit, ausdrücklich erklärt, um die Lesbarkeit und Kompilierung-Durchsetzung, dass Sie nur deklariert diese Variable hier, und erwartet, dass es tatsächlich an anderer Stelle definiert sein. Wenn Sie auch versuchen sollten, die externe Variable zu definieren, wird der Compiler Ihnen den Fehler Ihrer Wege mitteilen. Dies ist nützlich für globale Variablen, um eine Namenskollision und mehrere Definitionen zu verhindern, die beide zu Linkerfehlern führen. Das externe Schlüsselwort selbst macht die Variable jedoch nicht global.
Was macht die Variable global ist die Position ihrer Deklaration in der Datei. Wenn Sie eine Variable außerhalb der @ Schnittstelle in einer Header-Datei einer Klasse deklarieren würden, hätten Sie eine Variable definiert, die für alle Instanzen Ihrer Klasse freigegeben und sichtbar ist, sowie für jeden, der die Überschrift importiert. Wenn Sie eine Variable außerhalb der @implementation in Ihrer Klasse '.m-Datei deklarieren würden (und dies anscheinend auch getan haben), hätten Sie auch eine Variable deklariert, die von allen Instanzen Ihrer Klasse gemeinsam genutzt wird, aber für niemanden sichtbar ist #importiert den Header.
Verwenden Sie also die Position der Variablendeklarationen, um den Gültigkeitsbereich zu bestimmen. Sie werden nur definieren diese globalen Variablen an einem Ort. Für alle anderen Orte, die Sie deklarieren ihnen, die Deklaration mit extern vor, um den Code lesbar zu machen, Ihre Absichten klar, und um sicherzustellen, dass Sie nicht auch versuchen und definieren Sie es erneut.
Kurze Version: extern bedeutet, dass es irgendwo existiert, aber nicht hier. Wenn Sie es nicht innerhalb von @interface oder @implementation haben, ist es global. – ughoavgfhw
Tolle Erklärung, danke. –
Danke für Ihre Hilfe! – Jackson