Last Updated: 2023-10-06 09:02:39 Friday
-- TOC --
voldatile关键字表达了易变性
,声明为volatile的变量,编译器会强制要求读内存。
在嵌入式领域,申明volatile变量比较常见,可能存在程序之外的对volatile变量的修改,因此每一次使用这个变量时,都必须读取内存中的值。哪怕是连续的读取这个变量,每一次也都要从内存中取值。
其次,volatile具有是不可优化性
,volatile告诉编译器,不要对这个变量进行各种激进的优化,甚至将变量直接消除,保证代码中的指令一定会被执行。
最后是顺序性
,编译器需要保证Volatile变量间的顺序性,不会进行乱序优化。不过要注意与非volatile变量之间的操作,还是可能被编译器重排序的。
需要注意的是,volatile表达的含义,跟原子操作无关,对volatile变量的操作,并非原子的。
本文链接:https://cs.pynote.net/sf/c/202301202/
-- EOF --
-- MORE --