代码之家  ›  专栏  ›  技术社区  ›  Trey

C-易失性指针的使用

  •  2
  • Trey  · 技术社区  · 7 年前

    为什么要创建一个 指针?假设我想要一个 不稳定的 不稳定的 变量,以下哪个声明可以实现这一点:

    volatile int *pData;
    

    volatile int * volatile pData;
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   StoryTeller - Unslander Monica    7 年前

    为什么要创建一个易变指针?

    Stuff * volatile VideoFrame;
    for (;;) {
      Block_Changes();
      Stuff MyCopy = *VideoFrame;
      Allow_Changes();
      Use(&MyCopy);
    }
    

    我想要一个指向易失性变量的易失性指针,以下哪种声明可以实现这一点:

    nd公司 达到目标。 volatile int * volatile pData; 是一个:
    pData as volatile pointer to volatile int


    volatile int *pData; 是指向易失性数据的非易失性指针:
    pData as pointer to volatile int

    volitle 关键字在这种上下文中最常用。 @ Eugene Sh.

        2
  •  0
  •   user3629249    7 年前

    使用修饰符“volatile”的一个原因是编译器不会优化不存在的变量。

    使用修饰符“volatile”的另一个原因是,当代码引用该变量时,它访问的是实际变量,而不是某个寄存器中留下的值。