2016 - 2024

感恩一路有你

c语言中volatile关键字的作用 c语言volatile是什么意思?

浏览量:2304 时间:2021-03-13 11:06:29 作者:admin

c语言volatile是什么意思?

volatile的原意是通常有两种语句。

1. "瞬变

2.“多变。这两种说法都是可行的。定义为volatile的变量意味着该变量可能会意外更改,因此编译器不会假定该变量的值。在使用这个变量时,优化器每次都必须小心地重新读取变量的值,而不是使用存储在寄存器中的备份。

C语言中volatile关键字的用法是什么?

Volatile提醒编译器,它后面定义的变量可能随时发生变化,因此每次编译的程序需要存储或读取变量时,它都会告诉编译器直接从变量内存地址读取数据,而无需优化变量,从而提供对特殊地址的稳定访问。。如果没有volatile关键字,编译器可以优化读取和存储,并且可以临时使用寄存器中的值。如果此变量由另一个程序更新,则会出现不一致。

代码示例:

int square(volatile int*PTR)

]{

int a,b

a=*PTR

b=*PTR

返回a*b

}

由于*PTR的值可能会意外更改,因此a和b可能不同。因此,此代码可能不是您期望的正方形!正确的代码如下:

long square(volatile int*PTR)

{

int a

a=*PTR

return a*a

}

]注意:频繁使用volatile可能会增加代码大小,降低性能,所以合理使用volatile。

C语言中volatile修饰符的作用是什么?

Volatile告诉编译器每次使用变量时都要从内存中重新读取它。例如:单片机中寄存器的定义通常需要用volatile修改,因为寄存器的值会被硬件修改。还有一些全局变量可以被中断服务程序修改。例如,如果a=1b=a未定义为volatile,编译器通常会将其优化为a=1b=1。如果中断服务程序在执行第一句话之后将a改为2,那么优化程序中B的值不会改变,这不是我们想要的。在a的语句中添加volatile可以解决这个问题。

c语言中volatile关键字的作用 c语言volatile的用法 volatile用法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。