volatile关键字三个应用场合:
1.多线程编程共享全局变量的时候,该全局变量要加上volatile进行修饰,让编译器不要优化该变量。
2.某函数与中断服务函数共享全局变量的时候,该全局变量要加上volatile进行修饰,让编译器不要优化该变量。
3.ARM定义寄存器的时候,寄存器是指向一个地址,要加上volatile进行修饰,让编译器不要优化而省略该变量的访问。
延时函数delay()中a的前面不加volatile,灯的闪烁加快。宏定义位带操作不加Volatile,按键操作灯不会亮。
以上程序编译器设优化等级为2:
为什么设置编译器代码优化,可以压缩代码量。