added the introduction of keyword volatile