知识补充(2)-volatile关键字-创新互联

  今天做牛客的题库,遇到了c语言课上没有讲的关键字volatile,于是去学习了一下,并在此做总结方便之后的复习。

成都一家集口碑和实力的网站建设服务商,拥有专业的企业建站团队和靠谱的建站技术,十载企业及个人网站建设经验 ,为成都上千多家客户提供网页设计制作,网站开发,企业网站制作建设等服务,包括成都营销型网站建设,成都品牌网站建设,同时也为不同行业的客户提供成都网站建设、成都网站设计的服务,包括成都电商型网站制作建设,装修行业网站制作建设,传统机械行业网站建设,传统农业行业网站制作建设。在成都做网站,选网站制作建设服务商就选创新互联。

291f6f5a4f1443aaaf793501a2ccfd9d.jpg

  volatile是一种类型修饰符 可以用来防止变量在编译时被优化。

  我们知道内存访问速度不如寄存器与cache,在编译器编译时,会对程序进行优化,将经常访问的数据放在寄存器,从而加快访问速度,但这也带来了一些问题,如你的这个变量被修改了,程序还是会按照寄存器的数据执行而不是通过重新访问速度更慢的内存来获取数据。

  例如你有两个条件语句,一个是等于0执行,一个是等于1执行,你创建了一个全局变量值为1,编译器编译时会优化,只保留了等于1时的代码块,但是你的这个全局变量是可能被外部修改为0的。

  而volatile就可以提醒编译器,这个变量是会变的,在遇到与这个变量有关的操作时都要从内存中重新读取(例如当你将这个变量设为while循环判断条件时,每次while循环都要重新从内存读取数据并判断)。变量被修改的情况有:子进程对主进程的修改,中断函数对主函数的修改,对硬件寄存器进行修改等。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:知识补充(2)-volatile关键字-创新互联
当前链接:http://azwzsj.com/article/dpojdg.html