Что такое классы хранения (storage classes) в C?

Этот вопрос проверяет понимание областей видимости и времени жизни переменных.

Короткий ответ

В C есть 4 класса хранения переменных:

auto – локальная переменная по умолчанию.

extern – глобальная переменная, объявленная вне функции.

static – переменная, сохраняющая значение между вызовами функции.

register – переменная, хранящаяся в регистрах процессора для быстрого доступа.

 

Длинный ответ

Пример auto (по умолчанию):

void func() {
    auto int x = 10;
    printf("%d", x);
}

Пример extern (глобальная переменная):

extern int count;

Пример static (сохраняет значение):

void counter() {
    static int count = 0;
    count++;
    printf("%d ", count);
}

Пример register (хранение в процессоре):

register int fastVar = 10;

 

Классы хранения определяют, где и как переменные хранятся в памяти.

Уровень

  • Рейтинг:

    1

  • Сложность:

    5

Навыки

  • C

Подпишись на C/C++ Developer в телеграм