Найджел Джонс
Использование ключевого слова volatile в Си, как правило, плохо понимается программистами. Это не удивительно, так как большинство руководств по Си уделяют этому вопросу одно - два предложения. Эта статья научит вас, как использовать его правильно.

Сталкивались ли вы во время работы с Си или Си++ кодом со следующими ситуациями?

- код, который прекрасно работает, пока вы не включите оптимизацию
- код, который прекрасно работает, пока запрещены прерывания
- задачи ОСРВ, которые превосходно работают в изоляции, пока не создана какая-нибудь  другая задача
   При отладке встраиваемых приложений, наиболее сложно отловить ошибки,  проявляющие себя не постоянно, а лишь время от времени. Одна из причин подобных багов: переменные, доступ к которым осуществляется асинхронно. Такие переменные должны быть правильно определены, и иметь соответствующую защиту.