回顾下前面的const,代表的是常量声明,禁止被修改,那么有一些变量,非常特殊,需要频繁的改变,那么如何保证每次都是读取的最新的值呢?
C语言const搞不清楚?教你最简单的学习技巧!
这一节我们就来说说volatile关键字,这个单词的意思就是容易变化的,就是它是个变化无常的变量。
他代表修饰的变量,是会被某种方式改变,这个变化不是从代码端的,所以代码端这边就要注意,不能使用缓存数据,每次用这个数据的时候,都是需要从源头重新获取。
我们可以简单理解成,每次都需要更新数据,而不是用中间cache,volatile这个关键字就是干这个事。
而它的用途,一般在嵌入式常见,因为嵌入式有一堆外设,比如温度传感,或者是湿度检测,这些数据,都是实时在变化,它的变化最终对应的就是一个内存地址。
这个地址中的数据,被外界不断地修改。我们代码在获取的时候,就需要不断的循环,我们来看一段代码:
hello.c:
我们编译运行,然后objdump-Shello,截取一段
我们