Verständnisfrage zu Statischer Funktions-Deklaration

In der Reference steht ja die Beschreibung betr "static", falls dies für eine Variable gewünscht wird. So weit ok, nur was ist der tiefere Sinn, wenn dies mit einer Function gemacht wird?

Mir gehts um die Zeilen aus dem TinyGPS Beispiel wie diese hier:

static void sendstring(TinyGPS &gps, const PROGMEM char *str);

Dies im Header des Sketches definiert oberhalb der "void setup"

Wozu ist diese Deklaration notwendig?

Thx für alle Tipps!

Eine Funktion, die "static" definiert ist, ist nur für Code in der selben Datei aufrufbar, für Code in anderen Dateien sind sie unsichtbar. Achtung, dies gilt nur für (C-)Funktionen, nicht für Klassen-Methoden, die static definiert sind.

Ach so ist das, danke!

Eine Funktion, die "static" definiert ist, ist nur für Code in der selben Datei aufrufbar, für Code in anderen Dateien sind sie unsichtbar.

Leider nur halb richtig. Eine "static" Funktion ist nur in der gleichen Datei SICHTBAR. Code aus anderen Dateien kann sie sehr wohl rufen. Fragt sich nur wie er an die Einsprungadresse kommt ;)

Wenn man mit Funktionspointern arbeitet kann man damit die Einsprungadressen übergeben und dann auch "unsichtbare" Funktionen rufen.