示例:
volatile int running = 1; while (running) { ; // TODO }
以上代码中,running 在定义之后没有再修改它的内容,如果变量 running 不加 volatile 关键字,running 会被编译器优化为一个常量(右值),当使用 gdb 进行调试,修改 running 的值(set running = 0)的时候,会报 Left operand of assignment is not an lvalue 的错误,因此此外霜 volatile 在此处的作用就是告诉编译器:不要对running 变量做任何的优化。