标签:重排序 ati 编程 缓存 class 定义 点击 内存 arm
STM32是基于RAM的架构,学习它可以是嵌入式的一个基础部分。因此对于一些关键字也必须了解,在STM32学习过程中,遇到过如下变量,对其有疑问
关键字 | 功能 |
---|---|
vu32 | 返回最新的无符号整型写入值 |
通过在编译器中不断的追踪,最终找到vu32关键字的定义处,其应用了宏定义,完整的定义便是
#define vu32 volatile unsigned int
也就是vu32表示的是volatile unsigned int类型的数据,举个栗子
vu32 length;等价于volatile unsigned int length;我们需要知道一些关键字的原理,最主要的是关键字volatile:
被volatile关键字修饰的变量,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其内存操作一起重排序,volatile变量不会被缓存在寄存器或其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值
最后对于volatile用的多的地方还是嵌入式,关于这些内容,找到了一些可供参考的资料,可点击下方的嵌入式C语言中的volatile关键字查看。
标签:重排序 ati 编程 缓存 class 定义 点击 内存 arm
原文地址:https://www.cnblogs.com/liyingji/p/14226857.html