Back to questions
Senior
12
Для чего нужно ключевое слово volatile?
Companies where asked
СБК ПАРУС
Answer from AI
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 будет читаться актуальное значение из памяти, а не использоваться кешированное.