volatileとは

最適化を抑止する。
あまり参考書には出てこないが組み込みではよく使う宣言らしい。

必要な処理をコンパイラが最適化して消してしまわないようにするのが目的。

ex)

    volatile ULONG i;
    for(i = 0 ; i < 20 ; ++i);