What is the difference between using volatile int and int?
volatile lets variable be outside of an interrupt service routine.
Maybe between functions too.
Interesting wikipedia link, especially this comment:
Furthermore, in C and C++ it (volatile) does not work in most threading scenarios, and that use is discouraged.