9.12 Speicherklassen-Spezifizierer für Funktionen 

Natürlich sind die zusätzlichen Speicherklassen bei Funktionen im Vergleich zu Variablen nur beschränkt einsetzbar, da Funktionen ja nur global definiert werden können. Im Folgenden stelle ich die Speicherklassen vor, die Sie den Funktionen voranstellen können, und erkläre ihre Bedeutung.
9.12.1 extern 

Wenn Sie bei der Deklaration einer Funktion die Speicherklasse nicht angeben, ist diese automatisch mit extern gesetzt. Solche Funktionen können sich auch in einer anderen Quelldatei befinden. Dann speziell empfiehlt es sich, dieses Schlüsselwort zu verwenden (auch wenn dies nicht nötig wäre). Dieser Hinweis kann hilfreich für den Programmierer sein, weil er sofort weiß, worum es sich handelt. extern zu setzen dient also nicht der Verbesserung bzw. Optimierung des Quellcodes, sondern ist ein Hinweis für dessen Leser.
9.12.2 static 

Wenn Sie einer Funktion das Schlüsselwort static zuweisen, können Sie diese Funktion nur innerhalb der Datei nutzen, in der sie definiert wurde. Es ist somit das Gegenteil des Schlüsselworts extern.
9.12.3 volatile 

volatile ist zwar keine Speicherklasse, sollte aber hier trotzdem erwähnt werden. Mit volatile verhindern Sie (analog zu Variablen), dass der Compiler den Quellcode optimiert und die Funktion immer wieder neu aus dem Hauptspeicher gelesen werden muss.
Nach diesen etwas theoretischen, aber wichtigen Themen geht es wieder zurück zum eigentlichen Thema des Kapitels: den Funktionen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.