Heim > Backend-Entwicklung > C++ > Hauptteil

Ist das Schlüsselwort „static' in C wirklich veraltet?

DDD
Freigeben: 2024-11-13 07:23:02
Original
872 Leute haben es durchsucht

Is the 'static' keyword in C   truly deprecated?

Interne Verknüpfung und das veraltete Schlüsselwort „static“ in C

C-Entwickler verwenden seit langem das Schlüsselwort „static“ in Übersetzungseinheiten, um die Sichtbarkeit von Symbolen zu steuern. Diese Praxis führte jedoch zu einer Ablehnung in n3092, gefolgt von ihrer Entfernung in n3225.

Die Gründe für die Ablehnung

Die Ablehnung von „static“ zielte darauf ab, seine Verwendung zum Deklarieren von Objekten im Namespace-Bereich zu unterbinden , da der unbenannte Namespace eine bevorzugte Alternative darstellte. Das Problem bei der Verfolgung von C-Defekten offenbart jedoch einen differenzierten Grund für diese Änderung.

Die Aufhebung der Veraltung

In Revision 94 der C Standard Core Language Defect Reports wurde das Problem (1012. Undeprecating static ) erklärt Folgendes:

Obwohl in 7.3.1.1 [namespace.unnamed] angegeben ist, dass die Verwendung des Schlüsselworts static zum Deklarieren von Variablen im Namespace-Bereich veraltet ist, da der unbenannte Namespace eine überlegene Alternative darstellt, ist es unwahrscheinlich, dass die Funktion wird in absehbarer Zukunft jederzeit entfernt.

Die Persistenz von „statisch“

Dieses Update macht die veraltete Funktion effektiv rückgängig. „Static“ bleibt ein gültiges Schlüsselwort für die Deklaration von Funktionen und Objekten mit interner Verknüpfung. Sein Hauptvorteil liegt in seiner Kürze und dem Fehlen zusätzlicher Standardcodes im Vergleich zur Verwendung unbenannter Namespaces.

Auswirkungen auf die C- und C-Kompatibilität

Die ursprüngliche Ablehnung zielte darauf ab, die Einhaltung von C-Standards durch C zu verbessern , da C den unbenannten Namespace nicht erkennt. Die Entscheidung, die Ablehnung aufzuheben, erkennt jedoch die realen Komplexitäten des Kompilierens von C-Programmen als C an.

Fazit

Die Ablehnung von „static“ war vielleicht gut gemeint, aber ihre Entfernung spiegelt die Erkenntnis wider, dass unbenannte Namespaces den Nutzen von „static“ für die Deklaration von Objekten mit interner Verknüpfung nicht vollständig ersetzen. Daher können Entwickler „statisch“ weiterhin bedenkenlos verwenden, da seine Präsenz im C-Standard wahrscheinlich nicht so schnell verschwinden wird.

Das obige ist der detaillierte Inhalt vonIst das Schlüsselwort „static' in C wirklich veraltet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage