zoukankan      html  css  js  c++  java
  • STM32 volatile关键字

    为了提供对特殊地址的稳定访问。

    [C] 纯文本查看 复制代码
    1
    2
    3
    int i=10;
    int j=i;     //1
    int k=i;    //2

    此时编译器对上面代码进行优化,因为在1、2语句中,i 没有被用作左值(没有被赋值)。这时候编译器认为i 的值没有发生改变,所以在1语句时从内存取出 i 的值赋给 j 之后,这个值没有被丢掉,而是在2语句中继续用这个值赋值给k。编译器不会生成汇编代码重新从内存里取 i ,这样提高了效率

    [C] 纯文本查看 复制代码
    1
    2
    3
    volatile int i=10;
    int j=i;
    int k=i;

    volatile 关键字告诉编译器,i 是随时可能发生变化的,每次使用它的时候必须从内存取出 i 的值,因而编译器生成的汇编代码会重新从 i 的地址处读取数据放在k中。

  • 相关阅读:
    吴军博士《浪潮之巅》
    第十二周
    第十一周
    第十周
    第九周
    第四次作业
    第四周
    学习进度表
    世界是数字的
    第二阶段团队第八天成果。
  • 原文地址:https://www.cnblogs.com/ransn/p/8483155.html
Copyright © 2011-2022 走看看