Pages: [1]   Go Down
Author Topic: Verständnisfrage zu Statischer Funktions-Deklaration  (Read 299 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
Code:
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!
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 96
Posts: 4682
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ach so ist das, danke!
Logged

0
Offline Offline
Faraday Member
**
Karma: 19
Posts: 3418
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 smiley-wink

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

Check out my experiments http://blog.blinkenlight.net

Pages: [1]   Go Up
Jump to: