In C bestimmt das statische Schlüsselwort innerhalb einer Übersetzungseinheit die Sichtbarkeit von Symbolen. Allerdings war in n3092 die Verwendung für Objekte im Namespace-Bereich veraltet, und in n3225 wurde die veraltete Funktion entfernt.
Seltsamerweise ist die Dokumentation dieser Änderung begrenzt. Dieser Artikel befasst sich mit den Gründen dafür.
In Revision 94 von C Standard Core Language Defect Reports and Accepted Issues, unter 1012. Undeprecating Static, heißt es:
Although 7.3.1.1 [namespace.unnamed] states that the use of the static keyword for declaring variables in namespace scope is deprecated because the unnamed namespace provides a superior alternative, it is unlikely that the feature will be removed at any point in the foreseeable future.
Im Wesentlichen war die Ablehnung von Statik fehl am Platz. Es bietet eine bequeme Möglichkeit, Funktionen oder Objekte mit interner Verknüpfung zu deklarieren, ohne dass der Boilerplate-Code unbenannter Namespaces erforderlich ist.
Ein Problem war die Kompatibilität mit C. Das Kompilieren von C-Programmen als C kann eine Herausforderung sein, daher hat dieser Faktor möglicherweise keine wesentliche Rolle gespielt.
Die Entfernung des statischen Schlüsselworts Die Abwertung spiegelt die Erkenntnis wider, dass es weiterhin ein wertvolles Feature in C ist. Während unbenannte Namespaces eine Alternative darstellen, bietet Static eine prägnante und direkte Lösung für die Deklaration von Objekten oder Funktionen mit interner Verknüpfung.
Das obige ist der detaillierte Inhalt vonWarum wurde die Abwertung des statischen Schlüsselworts in C rückgängig gemacht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!