static

Документація

static


Ключове слово static використовується для створення змінних, видимих лише одній функції. Але на відміну від локальних змінних, які створюються і знищуються щоразу, як викликається функція, змінні static продовжують існувати і після виклику функції, зберігаючи свої дані між викликами функцій.

Змінні, оголошені як static, будуть створені та ініціалізовані при першому виклику функції.

Приклад

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

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

void loop()
{        // тестує функцію randomWalk
  stepsize = 5;
  thisTime = randomWalk(stepsize);
  Serial.println(thisTime);
   delay(10);
}

int randomWalk(int moveSize){
  static int  place;     // оголошується static - значення зберігаються між викликами, але функції не здатні їх змінювати

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

  if (place < randomWalkLowRange){                    // перевірити верхні та нижні обмеження
    place = place + (randomWalkLowRange - place);     //  відображати номер в позитивному напрямку
  }
  else if(place > randomWalkHighRange){
    place = place - (place - randomWalkHighRange);     // відображати номер в негативному напрямку  }

  return place;
}


Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.