- static-переменные
- Работа
static-переменные
Ранее уже говорилось о сохранении значений глобальных переменных. Однако очень часто требуется, чтобы локальная переменная внутри функции сохраняла бы свое значение от вызова к вызову. Например, многие алгоритмы генерации псевдослучайных чисел для получения нового числа используют значение, возвращенное в предыдущий раз.
Возможность сохранять значение локальной переменной есть - для этого служит ключевое слово static (т.е. статическая), добавляемое к типу переменной при ее определении. Например:
int func(void){
static int result = 0;
return ++result;
}
При первом обращении к функции func() она вернет результат 1, при втором - 2, при третьем - 3 и т.д., т.е. будет возвращать порядковый номер обращений к ней. Для хранения этого номера используется локальная переменная result, объявленная статической.
Инициализация статической переменной происходит лишь единственный раз, при первом обращении к функции, а все прочее время эта переменная сохраняет ранее присвоенное ей значение.