Для чего нужно ключевое слово volatile?

Это важно в embedded-системах и IoT, где переменные могут отражать состояние аппаратных регистров или быть разделяемыми между прерываниями и основным кодом.

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

Что ответить на собеседовании

Ключевое слово volatile в языках программирования (например, в C/C++) используется для указания компилятору, что значение переменной может изменяться вне контроля программы, например, аппаратными средствами или другим потоком.

Подробный разбор

Ответ с пояснениями

Ключевое слово volatile в языках программирования (например, в C/C++) используется для указания компилятору, что значение переменной может изменяться вне контроля программы, например, аппаратными средствами или другим потоком.

Это важно в embedded-системах и IoT, где переменные могут отражать состояние аппаратных регистров или быть разделяемыми между прерываниями и основным кодом.

Без volatile компилятор может оптимизировать код, предполагая, что значение переменной не меняется самостоятельно, что приведёт к ошибкам.

Пример:

volatile int sensor_value;

void ISR() { // обработчик прерывания
    sensor_value = read_sensor();
}

int main() {
    while(1) {
        if(sensor_value > threshold) {
            // реагируем на изменение
        }
    }
}

Здесь volatile гарантирует, что каждый раз при обращении к sensor_value будет читаться актуальное значение из памяти, а не использоваться кешированное.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее