初学者可能不太关心编译优化的作用,但对于有经验的工程师来说,掌握代码优化是必备技能。今天的话题是关于代码优化中关键字volatile在优化过程中的作用。1、什么是关键字volatile?Volatile是一种类型修饰符。volatile的作用是作为一个指令关键字,保证这条指令不会因为编译器优化而被省略,每次都需要直接读取值。volatile变量意味着这个变量可能会被意外改变,这样编译器就不会假定这个变量的值。---来自百度百科的关于volatile的定义,学习(阅读)的时候应该看过无数遍了,但是相信大部分人对其中的含义并没有很深刻的理解。当你真正去编程开发项目的时候,你会进一步理解其中的含义。2、volatile关键字对编译器优化的影响我们都知道编译器有优化代码的功能,我们常用的集成开发环境(Keil、IAR等)都有优化选项。如果您不使用关键字volatile声明变量,编译器可能会操纵对该变量的访问并生成非预期代码或删除预期功能。1、什么时候用volatile?使用volatile声明的常见情况:访问内存映射外设。在多个线程之间共享全局变量。访问中断例程或信号处理程序中的全局变量。比如STM32代码中:#define__Ovolatile/*!
