static



Açıklama

static anahtar sözcük, yalnızca bir işlev tarafından görülebilen değişkenler oluşturmak için kullanılır. Bununla birlikte, bir işlev her çağrıldığında oluşturulan ve yok edilen yerel değişkenlerden farklı olarak, statik değişkenler işlev çağrısının ötesinde kalır ve işlev çağrıları arasındaki verilerini korur.

Statik olarak bildirilen değişkenler yalnızca bir işlev ilk çağrıldığında oluşturulur ve başlatılır.

Örnek Kod

/* RandomWalk
  Paul Badger 2007
  RandomWalk wanders up and down randomly between two
  endpoints. The maximum move in one loop is governed by
  the parameter "stepsize".
  A static variable is moved up and down a random amount.
  This technique is also known as "pink noise" and "drunken walk".
*/

#define randomWalkLowRange -20
#define randomWalkHighRange 20
int stepsize;

int thisTime;

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

void loop() {
  //  test randomWalk function
  stepsize = 5;
  thisTime = randomWalk(stepsize);
  Serial.println(thisTime);
  delay(10);
}

int randomWalk(int moveSize) {
  static int place; // variable to store value in random walk - declared static so that it stores
  // values in between function calls, but no other functions can change its value

  place = place + (random(-moveSize, moveSize + 1));

  if (place < randomWalkLowRange) {                               // check lower and upper limits
    place = randomWalkLowRange + (randomWalkLowRange - place);    // reflect number back in positive direction
  }
  else if (place > randomWalkHighRange) {
    place = randomWalkHighRange - (place - randomWalkHighRange);  // reflect number back in negative direction
  }

  return place;
}

Ayrıca Bakınız

Komut const

Komut scope

Komut volatile