Приветствую Вас ГостьПятница, 03.05.2024, 13:58

AVR & ARDUINO




Каталог статей

Главная » Статьи » Справочник

Static

Ключевое слово static используется для создания переменной, которая видна только одной функции. Однако в отличие от локальных переменных, которые создаются и уничтожаются при каждом вызове функции, статические переменные остаются после вызова функции, сохраняя свои значения между её вызовами.

Переменные, объявленные как static, создаются и инициализируются только при первом вызове функции..

Пример

/* RandomWalk
* Paul Badger 2007
* RandomWalk ("Случайное блуждание") программа случайно перемещается между двумя точками 
* Максимальное перемещение задается параметром "stepsize".
* Static переменная place изменяет свое значение на случайную величину.
* Эту технику иногда называют "pink noise" ("розовый шум") или "drunken walk" ("пьяная походка").
*/
 
#define randomWalkLowRange -20 //нижняя граница
#define randomWalkHighRange 20 //верхняя граница
int stepsize;
 
int thisTime;
 
void setup()
{
 Serial.begin(9600);
}
 
void loop()
{ 
 stepsize = 5;
 thisTime = randomWalk(stepsize);
 Serial.println(thisTime);
 delay(10);
}
 
int randomWalk(int moveSize){
 static int place=0; // переменная сохраняет значение между вызовами функции
 // другие функции не могут изменять значение этой переменной
 //также происходит первичная инициализация
 place = place + (random(-moveSize, moveSize + 1));
 
 if (place < randomWalkLowRange){ // проверяем выхождение за границы
 place =randomWalkLowRange; // если "выскочили" то делаем ограничиваем 
 }
 else if(place > randomWalkHighRange){
 place = randomWalkHighRange; // если "выскочили" то делаем ограничиваем 
 }
 
 return place;
}

Справочник

Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.



Источник: http://arduino.cc/en/Reference/Static
Категория: Справочник | Добавил: magi (22.01.2015)
Просмотров: 1371 | Теги: STATIC | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Вход на сайт
На правах рекламы

Мы переезжаем на сайт Arduino по-русски