Für mich sind die Verwendung des Schlüsselworts static
in C und Sprachen wie C # und Java "falsche Freunde" wie "werden" auf Englisch und "bekommen" auf Deutsch (= "bekommen" auf Englisch), weil sie verschiedene Dinge bedeuten.
In C static
bedeutet, dass auf die Funktion oder Variable nur über Funktionen in derselben Quelldatei zugegriffen werden kann, vergleichbar mit private
Funktionen und Elementen in C ++, Java und C #.
In C ++ bedeutet Java und C # static
, dass die Methoden keine Mitglieder einer Klasseninstanz sind, sondern effektiv mehr oder weniger C-Funktionen plus Namespace ähneln.
IMHO sind diese beiden Konzepte sehr unterschiedlich. Warum haben die Designer von C ++ und später Java und C # das static
Schlüsselwort für dieses Verhalten ausgewählt? Gibt es eine logische Verbindung, die ich vermisse?
BEARBEITEN
Ich weiß, dass static
in C die Barrierefreiheit nicht ähnlich wie private
in C ++ geregelt wird, sondern auf diese Weise verwendet werden kann, siehe https://stackoverflow.com/a/1479639/124983