MetaTrader 5 herunterladen

Statische Variablen

Speicherklasse static bezeichnet statistische Variable. Modifikator static wird vor dem Datentyp angegeben.

Beispiel:

int somefunc()
  {
   static int flag=10;
   ...
   return(flag);
 ;}

Statische Variable kann durch die ihrem Typ entsprechende Konstante  oder Konstantausdruck initialisiet werden, zum Unterschied von einfacher lokalen Variable, die von jedem Ausdruck  initialisiert werden kann.  

Statische Variablen existieren seit Programmdurchführung und werden einmalig vor dem Aufruf spezialisierter Funktion OnInit() initialisiert. Wenn Wenn Anfangswerte nicht angegeben werden, nehmen Variablen der statistischen Klasse Nullwerte an.

Lokale Variablen, erklärt mit Schlüsselwort static bewahren ihre Werte innerhalb der ganzen Lebensdauer der Funktion. Beim der Funktion haben lokale Variablen die Werte, die sie beim vorletzten Aufruf hatten.

Alle Variablen im Block, ausser formaler Parameter der Funktion können als statisch bezeichnet werden.

Beispiel:

int Counter()
  {
   static int count;
   count++;
   if(count%100==0) Print("Funktion Counter ist schon aufgerufen ",count," mal");
   return count;
 ;}
void OnStart()
  {
//---
   int c=345;
   for(int i=0;i<1000;i++)
     {
      int c=Counter();
    ;}
   Print("c =",c);
 ;}

Sehen Sie auch

Datentypen, Inkapsulation und Erweiterungsfaehigkeit der Typen, Initialisierung der Variablen, Sichtbereich und Lebensdauer der Variablen, Erzeugung und Entfernung der Objekte, Statische Klassenmitglieder