Für mich sind die Verwendung des Schlüsselworts staticin 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 staticbedeutet, dass auf die Funktion oder Variable nur über Funktionen in derselben Quelldatei zugegriffen werden kann, vergleichbar mit privateFunktionen 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 staticSchlüsselwort für dieses Verhalten ausgewählt? Gibt es eine logische Verbindung, die ich vermisse?
BEARBEITEN
Ich weiß, dass staticin C die Barrierefreiheit nicht ähnlich wie privatein C ++ geregelt wird, sondern auf diese Weise verwendet werden kann, siehe https://stackoverflow.com/a/1479639/124983