static Funktionen


static Funktionen sind Funktionen, die nur innerhalb eines Quelltextfiles sichtbar sind.Sehen sie sich das folgenden Programmbeispiel an..

main.c

   #include 

   main()
   {
     Func1();   

     Func2();
   }
   
funcs.c

   /*************************************
    *
    * Funktionsdeklaration (prototypes).
    *
    *************************************/

   /* Func1 ist nur in diesem File sichtbar. */   

   static void Func1(void);

   /* Func2 ist im gesamten Quelltext sichtbar. */

   void Func2(void); 

   /*************************************
    *
    * Funktionsdefinitionen
    *
    *************************************/
       
   void Func1(void)
   {
     puts("Func1 called");
   }
   
   /*************************************/
   
   void Func2(void)        
   {
     puts("Func2 called");
   }
   

Wenn man versucht, diese Programm zu übersetzten ( mit gcc z.B.)


   gcc main.c funcs.c   

wird die Übersetzung mit einer Fehlernachricht abgebrochen, die etwa so lauten könnte


   undefined reference to `Func1'  

Da die Funktion  'Func1' als static deklariert wurde, ist sie in  'main.c' nicht sichtbar.


Hinweise:

Die Bedeutung des Schlüsselwortes  static ist kontextabhängig:

  1. static in einer Funktionsdeklaration bewirkt, daß die Funktion nur in diesem Quelltextfile sichtbar ist.
  2. static  bei einer Variablendeklaration innerhalb einer Funktion bewirkt, daß die Funktion diesen Wert zwischen Funktionsaufrufen behält. Siehe static Variablen.

Siehe auch:

static Variablen

C++ Erweiterungen für static


Anfang Hauptindex Schlüsselwörter Funktionen

Übers.: G. Junghanns