Const und Static sind orthogonale Konzepte in C und C ++.
Das const
Schlüsselwort weist den Compiler an, zu verhindern, dass die Variable als Wert eines Ausdrucks angezeigt wird, sodass sie im Wesentlichen schreibgeschützt ist.
In C hat das static
Schlüsselwort je nach Anwendung mehrere Verwendungszwecke. Wenn es auf eine Variable einer Funktion angewendet wird, bedeutet dies, dass die Variable nicht im lokalen Bereich einer Funktion gespeichert ist, sondern über Aufrufe derselben zugänglich ist. Wenn es auf eine globale Variable oder Funktion angewendet wird, ist es nur für eine bestimmte Datei zugänglich - mit anderen Worten, es ist nur innerhalb der Kompilierungseinheit zugänglich (sofern nicht deklariert extern
).
In C ++, das static
kann Schlüsselwort innerhalb einer Klassendefinition verwendet werden, eine Variable oder Funktionen zu machen , geteilt in allen Instanzen der Klasse, anstatt für jede Instanz lokal zu sein. Darüber hinaus kann eine statische Klassenfunktion in C ++ nur auf statische Variablen dieser Klasse (oder auf Klassen, auf die sie Zugriff hat) zugreifen. In C ++ werden const
Mitglieder nun intern mit der Kompilierungseinheit verknüpft, sofern sie nicht ausdrücklich deklariert sind. extern
Dies ist möglicherweise das, worauf Sie verweisen. Auf diese Weise können Konstanten zur Kompilierungszeit mithilfe von Header-Dateien geräteübergreifend gemeinsam genutzt werden. Beachten Sie jedoch, dass die Mitglieder nicht wirklich statisch sind - vielmehr wird die Konstante an jedem Ort kompiliert, an dem sie referenziert wird.