答:volatile关键字的作用 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在...
int square(volatile int *ptr) {return *ptr * *ptr;} 下面是答案: 1). 是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。 2). 是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。 3). 这段...
(1)含义: volatile关键字的意思是可能会被外来的意想不到的改变。它的作用是:优化器在使用该关键字定义的变量时,直接从内存中读取原始的数据,而不是读取寄存器里保存的备份的值。 (2)常见用途: ( a)一个中断服务子程序会被访问到的非自动变量。 ( b)多线程应用中被几个任务共享的变量。 ( c)并行设备中...
1、const, volatile含义 const含义是“请做为常量使用”,而并非“放心吧,那肯定是个常量”,他修饰的变量不是一个真的常量,它只是告诉编译器该变量不能出现在赋值符号的左边。 volatile的含义是“请不要做自以为是的优化,这个值可能变掉的”,而并非“你可以修改这个值”,他强制编译器减少优化,必须每次从内存中取...
c语言中volatile关键字是什么含义c语言中volatile关键字是什么含义 最佳答案volatile影响编译器编译的结果,指出,volatile变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: ...
在C语言中,volatile是一种类型修饰符,用于声明一个变量是易变的(volatile)。“易变”指的是该变量的值可以在程序的外部被修改,例如硬件、中断或者其它线程。 2. volatile关键字的作用 通常情况下,编译器会对变量进行优化,例如将变量缓存在寄存器中以提高访问速度。然而,对于volatile修饰的变量,编译器会禁止这种优化...
浏览代码,你会发现,很多地方都使用了“__IO”,也就是volatile. 在跑系统的项目中,线程间共享的全局变量,建议都加上volatile关键字,这一点,很多人没有在意。 2.不使用volatile时可能出现的问题 如果未将变量用volatile声明,则编译器会假定其值不能在其定义的范围之外进行修改。
C语言中的"volatile"关键字具有特殊的含义,它标记为“易变”的,与常量(const)属性形成对比。被volatile修饰的变量,其值在编译期间可能会发生动态变化,这与变量的初始值或const属性不同。使用volatile的主要目的是告诉编译器,不要对这个变量的值进行优化,因为它的值可能在程序运行时由其他不可控因素...
volatile的英文解释是——“易失的,易改变的”。顾名思义,这个关键字的含义是向编译器指明变量的内容可能会由于编译器意想不到的情况的变化而发生变化。这个解释仍然比较抽象,感兴趣的可以继续阅读下面内容。 先看一下编译器对程序的优化过程是怎么进行的 ...