C语言中voliate关键字的作用「建议收藏」

C语言中voliate关键字的作用「建议收藏」一个变量用voliate关键字修饰,是要告诉编译器,这个变量的值随时可能发生变化,所以编译器每次都必须从变量对应的内存地址中获取该变量的值。voliate的常用方式:当一个变量表示某寄存器的值时,需要用voliate修饰,这样编译器就不会优化,所谓优化,就是每次去读取寄存器里面的数据,作为这个变量的值,问题在于,如果程序中已经改变了该变量的值,那么就会导致这个变量值跟寄存器里面的值不一样,从而导致冲突,用voliate就会避免这个问题,因为不会再去寄存器读取数据作为该变量的值了,而是直接去变量对应的内存地

大家好,又见面了,我是你们的朋友全栈君。

一个变量用voliate关键字修饰,是要告诉编译器,这个变量的值随时可能发生变化,所以编译器每次都必须从变量对应的内存地址中获取该变量的值。

voliate的常用方式:
当一个变量表示某寄存器的值时,需要用voliate修饰,这样编译器就不会优化,所谓优化,就是每次去读取寄存器里面的数据,作为这个变量的值,问题在于,如果程序中已经改变了该变量的值,那么就会导致这个变量值跟寄存器里面的值不一样,从而导致冲突,用voliate就会避免这个问题,因为不会再去寄存器读取数据作为该变量的值了,而是直接去变量对应的内存地址去找。

跟cache有关系

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145086.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • k8s(七)Pod调度[通俗易懂]

    k8s(七)Pod调度[通俗易懂]k8s概述定向调度亲和性调度污点和容忍Pod的调度概述在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式。自动调度:运行在哪个Node节点上完全由Scheduler经过一系列的算法计算得出。定向调度:NodeName、NodeS

    2022年8月11日
    5
  • AD PCBlayout 总结[通俗易懂]

    AD PCBlayout 总结[通俗易懂]PCBlayout总结1、关于规则注:多个规则存在时需要设置规则的优先级,如:(1)poly和keepout之间的clearance规则定义2、关于走线拐角PCB走线中不能出现锐角和直角,而且走线也不能和IC的PIN脚垂直首先不光是天线的布线不走锐角,在布线中最好都不走锐角,只是天线的布线尤为重要。1、对于高频电流来说,当导线的拐弯处呈现直角甚至锐角时,在靠近弯角的部位,磁通密度及电场强度都比较高,会辐射较强的电磁波,而且…

    2025年7月4日
    2
  • Django(74)drf-spectacular自动生成接口文档「建议收藏」

    Django(74)drf-spectacular自动生成接口文档「建议收藏」介绍drf-spectacular是为DjangoRESTFramework生成合理灵活的OpenAPI3.0模式。它可以自动帮我们提取接口中的信息,从而形成接口文档,而且内容十分详细,再也不

    2022年8月7日
    5
  • 线与逻辑与OC门、OD门关系

    线与逻辑与OC门、OD门关系线与逻辑:两个或多个输出信号连接在一起可以实现逻辑“与”的功能。以下图为例:当与非门G1和G2输出都为1时,输出L才为1;只要有一个输出为0,则输出L为0。在硬件上,要用OC门(三极管,集电极开路)或OD门(NMOS,漏极开路)来实现。另外,为了防止灌电流过大,在输出端要加1个上拉电阻。我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么…

    2025年6月6日
    1
  • 【转】Smartphone–Android真机管理平台[通俗易懂]

    【转】Smartphone–Android真机管理平台

    2022年3月11日
    45
  • UNIX基本操作命令

    UNIX基本操作命令UNIX命令基础登录系统:输入密码,密码不显示退出系统:ctrl+dexitlogout创建/修改密码:passwd密码输入后不显示,新密码要输入两次,匹配成功才算是修改密码成功UNIX命令格式:命令选项参数快捷键:ctrl+c:中断当前命令执行并返回shellctrl+d:终端传输或结束文本编辑ctrl+s:临时中断命令的屏幕输出ctrl+q:恢复由ctrl+s的临时中断ctrl+u:清除输入的整个命令行backspace:删除某个错误输入的字符常用操作命令

    2022年5月31日
    433

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号