Sobes.tech
Назад к вопросам
Senior
11

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

Компании, где спрашивали
СБК ПАРУС

Ответ от нейросети

sobes.tech AI

Ключевое слово 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 будет читаться актуальное значение из памяти, а не использоваться кешированное.