static

static anahtar kelimesi ile sadece tanımlandığı fonksiyon içerisinde geçerli olan değişkenler oluşturulabilir. Bununla beraber fonksiyon her çağırıldığında tekrar oluşturulup fonksiyon sonunda yok edilen local değişkenlerden farklı olarak static değişkenler fonksiyon her çağırıldığında yeniden oluşturulmazlar. Sadece fonksiyon ilk defa çağırıldığında oluşturulurlar. Daha sonraki çağrılarda tekrar oluşturulmayacağı için bir önceki aldığı değeri saklar.

// calculate fonksiyonu her çağırıldığında valueStatic değişkeninin bir önceki,
// değerinin üzerine 5 değerini ekler ve çağırıldığı yere geri döndürür.
// görüldüğü gibi valueStatic değişkeni sadece ilk çağırıldığında 0 değerini alacaktır.

int value;

void setup() {
  Serial.begin(9600);
}

void loop() {
  value = calculate(5);
  Serial.println(value);
  delay(10);
}

int calculate(int x) {
  static int valueStatic = 0;
  valueStatic = valueStatic + x;
  return valueStatic;
}
Was this page helpful?