在C语言中,将变量声明为volatile类型,其作用为______。

admin2012-06-25  27

问题 在C语言中,将变量声明为volatile类型,其作用为______。

选项 A、设为静态变量
B、让编译器不再对该变量进行优化
C、设为全局变量
D、节约存储空间

答案B

解析 本题考查C语言的基础知识。在C语言中volatile是一个类型修饰符,在变量说明语句中,它告诉编译器,不能对使用变量的语句进行优化,即使程序中没有明显地改变一个变量的值,这个变量的值也会由于程序外部的原因(事件)被改变。当程序中的一个变量被映射到设备所使用的内存空间,或被独立的进程共享时,这些设备或独立进程可能在任何时刻修改这个变量的值。例如,下面的程序片段用于计算一段程序所需的时间:
   unsigned long clock;
   time1=clock;
   ……..
   time2=clock;
   diff-time2-time1;
   变量clock用于记录系统时钟当前时间,由一个时钟中断程序来修改,这段程序的问题在于,按编译器优化后的代码,变量time2就不会获得正确的值。
   正确的做法是给变量clock前加上volatile进行修饰,即:
   volatile unsigned long clock;
   这样,编译器在每次需要变量clock的值时,都从内存中读取该变量的值。
转载请注明原文地址:https://jikaoti.com/ti/WKI7FFFM
0

相关试题推荐
最新回复(0)