c语言volatile是什么意思

如题所述

volatile的本意是“易变的”,volatile定义的变量它的值在编译时是会改变的,跟const相反,而const定义的变量一直不会变的,如果变量加上volatile修饰,则编译器保证对此变量的读写操作都不会被优化(肯定执行)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-05-27
“一个定义为volatile的变量是说这变量可能会被意想不到地改变,”
举一个嵌入式开发的例子。在STM32F10x_FWLib 标准函数库对volatile的使用。
这段代码在stm32f10x.h中
当变量为输入输出之时,程序中不一定出现赋值,但变量会根据硬件状态改变。
所以每次要重新从外设寄存器中读取。const的使用可以对比着看
#define __I volatile const /*!< defines 'read only' permissions */
#define __O volatile /*!< defines 'write only' permissions */

#define __IO volatile /*!< defines 'read / write' permissions */
typedef __IO int8_t vs8;
typedef __I int32_t vsc32; /*!< Read Only */本回答被提问者采纳

C语言中的volatile是什么意思?怎么用?谢了
C语言中的"volatile"关键字具有特殊的含义,它标记为“易变”的,与常量(const)属性形成对比。被volatile修饰的变量,其值在编译期间可能会发生动态变化,这与变量的初始值或const属性不同。使用volatile的主要目的是告诉编译器,不要对这个变量的值进行优化,因为它的值可能在程序运行时由其他不可控因素改...

c语言volatile是什么意思
C语言中volatile的意思 在C语言中,volatile是一种类型修饰符,主要用于告诉编译器该变量可能在外部被改变,而不是仅通过程序的正常流程来改变。对于某些特定的应用场景,如多线程编程、嵌入式系统或硬件操作等,volatile关键字发挥着重要的作用。详细解释:1. 基本定义:volatile是一个存储类说明符,它可以...

C语言中有32个关键词,9种控制语句,34种运算符,分别是哪些?
volatile :与const合称“cv特性”,指定变量的值有可能会被系统或其他进程\/线程改变,强制编译器每次从内存中取得该变量的值 return :用在函数体中,返回特定值(或者是void值,即不返回值)continue :结束当前循环,开始下一轮循环 break :跳出当前循环或switch结构 goto :无条件跳转语句 if :条件...

简述C语言中volatile关键字的用法
volatile是个多线程变量,就是可能在很多函数中会修改他。特别是中断函数中一定要用他。volatile的意思就是“不稳定的”可能突发地改变它,单片机每次调用他的话,都要从他的地址取数。预防单片机不知道普通的变量改变了,还是用上一次的数据。定义方法是 :volatile char i; \/\/定义一个字符型...

有没有关于C语言里面的英语单词的意思
:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)default:开关语句中的“其他”分支 goto:无条件跳转语句 sizeof:计算数据类型长度 volatile:说明变量在程序执行中可被隐含地改变 do :循环语句的循环体 while :循环语句的循环条件 static :声明静态变量 if:条件语句 [\/code]...

C语言中volatile在什么情况下使用
volatile是易变的,不稳定的意思,volatile是关键字,是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其他线程等,遇到这个关键字声明的变量,编译器对访问该变量的代码不在进行优化,从而可以提供对特殊地址的稳定访问。volatile 关键字告诉编译器该变量是随时...

C语言中关键字volatile是什么意思
volatile的本意是一般有两种说法。1.“暂态的 2.“易变的。这两种说法都有可行。一个定义为volatile的变量是说这变量可能会被意想不到的改变,这样,编译器就不会去假设这个变量的值了。优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 www.okeycar....

C语言中的volatile是什么意思
volatile的本意是一般有两种说法--1.“暂态的”;2.“易变的”。这两种说法都有可行。但是究竟volatile是什么意思,现举例说明(以Keil-c与a51为例 例子来自Keil FQA),看完例子后你应该明白volatile的意思了,如果还不明白,那只好 再看一遍了。例1.void main (void){ volatile int i;int j;i...

volatile 引用哪个头文件
volatile是C语言里面的一个关键字,不需要引用。volatile是一个类型修饰符(type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。说人话,就是:变量可能会被意想不到地改变,添加volatile关键字后...

C语言中Valatile关键字有什么用
C语言关键字volatile(注意它是用来修饰变量而不是上面介绍的__volatile__)表明某个变量的值可能在外部被改变,因此对这些变量的存取不能缓存到寄存器,每次使用时需要重新存取。该关键字在多线程环境下经常使用,因为在编写多线程的程序时,同一个变量可能被多个线程修改,而程序通过该变量同步各个线程,...

相似回答