Spec-Zone.ru › C

Статическая продолжительность хранения

Объект, идентификатор которого объявлен без спецификатора класса хранения _Thread_local, и либо с внешней или внутренней связью, либо со спецификатором класса хранения static, имеет статическую продолжительность хранения. Его срок жизни охватывает весь период выполнения программы, а его хранимое значение инициализируется только один раз, до запуска программы.

Примечания

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

Другое использование ключевого слова static — области файла.

Пример

#include <stdio.h>
 
void f (void)
{
    static int count = 0;   // static variable   
    int i = 0;              // automatic variable
    printf("%d %d\n", i++, count++);
}
 
int main(void)
{
    for (int ndx=0; ndx<10; ++ndx)
        f();
}

Вывод:

0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/language/static_storage_duration

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API