volatileって単にコンパイル時の最適化を抑制するだけじゃないのん?