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