好的,各位观众老爷们,欢迎来到今天的C++ “volatile” 关键字专场!今天咱们不搞虚的,直接上干货,保证让大家听完之后,对 “volatile” 的理解更上一层楼,以后写代码再也不怕被编译器“优化”得找不着北了! 开场白:编译器你个“小机灵鬼”! 话说,C++编译器是个非常勤劳的小蜜蜂,天天想着怎么优化我们的代码,让程序跑得飞快。这本来是好事,但是!但是!凡事就怕“但是”!有些时候,编译器自作聪明,反而会给我们添乱。 比如,它看到一段代码,觉得某个变量的值一直没变,就直接用上次的值,不去内存里重新读取了。这在大多数情况下是没问题的,可是,如果这个变量的值是被其他线程、中断、硬件设备修改的呢?编译器这一下就懵逼了,拿到的还是旧值,程序直接就跑飞了! 这时候,就需要我们祭出 “volatile” 这个法宝了! “volatile” 是个啥?一句话概括! “volatile” 的作用就是告诉编译器:“老铁,这个变量的值可能会在意想不到的时候发生变化,你可千万别自作聪明,每次用它的时候,都老老实实地去内存里读一次!” “volatile” 关键字的语法:简单粗暴! “volatile” …