11.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. Es folgen die Speicherklassen, die Sie den Funktionen voranstellen können, und die zugehörigen Bedeutungen.
11.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.
11.12.2 static
 
Weisen Sie einer Funktion das Schlüsselwort static zu, können Sie diese Funktion nur innerhalb der Datei nutzen, in der sie definiert wurde. Es ist somit das Gegenteil des Schlüsselworts extern.
11.12.3 volatile
 
Dies 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.
|