• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单片机中什么情况下会使用volatile定义变量

66f9761e87d9679b 2020-01-09 浏览量:730
单片机中什么情况下会使用volatile定义变量
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • volatile是易变的、易挥发的意思,它修饰的变量,告诉编译器不可以优化掉,每次读变值时必然从变量地址去读。
    一般说来,volatile关键字用在如下的几个地方。
    (1)中断服务程序中修改的供其他程序检测的变量需要加volatile。
    (2)多任务环境下各任务间共享的标志应该加volatile。
    (3)存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能有不同意义。
    • 发布于 2020-01-10
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 经常调用或者比较重要的变量或者函数,禁止编译器优化后影响程序会在变量或者函数前加volatile修饰,主要作用就是禁止编译器编译的时候优化这个变量过函数防止出现意外
    • 发布于2020-01-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果不想让编译器优化某些变量的时候就需要使用volatile定义,其中最典型的就是绝对地址访问,涉及到用绝对地址访问RAM flash或者外设的时候就需要用volatile
    • 发布于2020-01-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 本身volatile修饰主要是说明对应定义是 容易发生变化的,故要求不被编译器优化,由此其主要有这些方面需要进行修饰

    1. 涉及固定地址、映射信息的,

    2. 各类多进程、中断程序中会相互修改的全局变量、静态变量等等

    • 发布于2020-01-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 当你的变量不想要被优化掉进,就用这个关键字来定义变量
    • 发布于2020-01-16
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机中什么情况下会使用volatile定义变量