Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про C: storage class, auto, static, extern, register

Что такое классы хранения (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

Ключевые слова

#storage class

#auto

#static

#extern

#register

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