[an error occurred while processing this directive]
|
в выражении используется более одной volatile-переменной. Поскольку по стандарту компилятор при вычислении арифм. выражений имеет право менять порядок действий, то он и предупреждает, что порядок доступа к volatile-переменным может получиться другим. Лечится заведением временных переменных и копированием в них "лишних" volatile.
volatile uint8_t Head, Tail;uint8_t hasinput() {
uint8_t Tmp = Head;
return Tmp - Tail;
}