Ой ужос!!! И куда ж в эмбеддеры без этого? Фундамент блин. volatile - говорит о том, что данные могут изменится в любой момент и следовательно данная переменная не подлежит оптимизации (например не выносится за пределы цикла, или ее многократный вызов не сокращается до однократного)ю Незаменимо в описании железа - всяческих портов и регистров статуса.
static сложнее.
Если применяется к локальной переменной в функции - значит ее значение сохраняется после выхода из функции. Очень хорош например для счетчиков событий в прерываниях.
Еслли применяется к переменной за пределами функции или к функции - значит область видимости ограничевается данным файлом. Очень часто встречается связка static inline - для определения инлайновых функций прямо в хидер файле. Получается единственное определение функции при многократном включении файла в проект.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|