什么是最好的使用volatile?当我们在本地或正式变量中使用时会发生什么?

时间:2013-12-23 04:36:06

标签: c

当我们在局部变量中使用volatile时会发生什么?

例如,

    #include <stdio.h>
    #include <stdlib.h>

    int get_data (volatile int data)
    {
        return (data * data * data);
    }

    int main()
    {
        int data = get_data(12);
        printf("%d",data);
        return 0;
    }

2 个答案:

答案 0 :(得分:2)

在这种情况下,除了可能执行得更慢的程序之外,没有可见的变化。

答案 1 :(得分:0)

当变量在其声明中由volatile限定时,变量的值可以由任何外部设备或硬件中断更改。 在您的示例中,没有任何更改。当你对变量volatile进行限定时,每当程序试图访问变量时,每次它都会查看存储变量的内存。不会对变量进行任何优化。所以程序可能会运行得更慢。

 What is best use volatile?

https://stackoverflow.com/a/4437555/1814023