`
hukejia
  • 浏览: 83267 次
  • 性别: Icon_minigender_2
  • 来自: 哈尔滨
文章分类
社区版块
存档分类
最新评论

c语言中volatile关键字是什么含义

阅读更多
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。

例如:
volatile int i=10;
int j = i;
...
int k = i;

volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。

而优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面读。这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问,不会出错。
分享到:
评论

相关推荐

    关于C语言中volatile关键字

    精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;如果不使用valatile,则编译器将对所声明的语句进行优化。(简洁的说就是:volatile关键词...

    C语言中关于关键字volatile的用法

    在C语言中,关键字volatile是一个非常...综上所述,volatile关键字在C语言中的用法和意义是多方面的,它能够有效地解决在特定编程场景下的优化和稳定性问题。掌握其正确的使用方法对于编写出高效、稳定的代码至关重要。

    嵌入式开发-c语言中volatile关键字作用

    一个定义为volatile 的变量是说这变量可能会被意想不到地改变,这样,编 译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必 须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里...

    详解C中volatile关键字

    volatile关键字是C语言中一个重要的关键字,它对变量的声明在不同编译环境下可能造成不同的结果。volatile关键字的作用是提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个...

    C语言关键字 C语言关键字 C语言关键字

    在本篇文章中,我们将深入探讨C语言中的关键字及其用法。C语言作为一种广泛使用的编程语言,在软件开发领域占据着极其重要的地位。理解并熟练掌握C语言的关键字是学习该语言的基础,也是成为一名合格程序员的...

    C语言中的volatile关键字

     没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存器中取值,而不去内存中取值,是因为...

    C语言中的volatile关键字:深入解析与应用实践

    ### C语言中的volatile关键字:深入解析与应用实践 C语言作为一种通用且强大的编程语言,在软件开发领域占据着举足轻重的地位。它以其简洁高效、接近硬件、良好的可移植性等特点,成为系统软件开发的首选语言之一。...

    C语言关键字volatile(易变的)表示不经过赋值,其值也可能被改变

    在C语言中,volatile关键字可以用于变量的声明中,以告诉编译器该变量的值可能会被外部因素所改变。例如: ```c volatile int x; ``` 这将告诉编译器,变量x的值可能会被外部因素所改变,以便采取相应的措施来确保...

    C语言32个关键字含义特别说明

    以下是对这些关键字含义的详细说明。 ### 数据类型关键字 这些关键字用于声明变量的数据类型。 - `int`:表示整型数据类型,通常编译器根据平台的机器字长决定其大小。 - `char`:表示字符型数据类型,它是整型的...

    C语言中的关键字

    在C语言中,**关键字**是预定义的词汇,它们具有特殊的含义和功能,不能用作标识符(如变量名、函数名等)。C语言共有32个关键字,这些关键字在编写程序时扮演着重要的角色。 #### 二、分类 C语言的关键字可以分为...

    C语言学习之volatile关键字.pdf

    `volatile`关键字在C语言中是一个非常重要的概念,主要用于指示编译器某个变量的值可能会在编译器无法预测的情况下发生变化,例如由硬件中断、并发操作或其他非程序控制的手段改变。这使得编译器在处理`volatile`...

    单片机C语言中volatile的作用

    在探讨单片机C语言中`volatile`关键字的作用之前,我们首先需要理解`volatile`的基本概念及其应用场景。`volatile`是一个用于声明变量的关键字,在C语言中,使用`volatile`修饰的变量表明其值可能会在没有程序控制的...

    c语言32个关键字.pdf

    与const相对的是volatile关键字,它用于声明易变的数据,表明数据的值可能在程序的控制之外被改变,因此每次使用该数据时都需要从内存中重新读取。return关键字用于从函数中返回一个值,而continue关键字用于结束...

    c语言中常用的几个关键字

    2. 中断服务子程序中会访问到的非自动变量:在中断服务子程序中,volatile关键字可以防止编译器优化,确保变量的值正确地被读取。 3. 多线程应用中被几个任务共享的变量:在多线程应用中,volatile关键字可以防止...

    C语言中关键字volatile的作用

    C语言中关键字volatile的作用,使用说明和例子

    探讨C语言中关键字volatile的含义

    C语言中的关键字`volatile`是一个非常重要的概念,尤其在嵌入式系统编程和多线程环境中。`volatile`关键字的含义在于告诉编译器,某个变量的值可能会在编译器不可预见的情况下发生变化,比如由硬件中断、并发操作或...

    C语言中关键字const、static、volatile、extern、auto、register的用法分析.doc

    Volatile关键字的作用是告知编译器,变量的值可能随时被改变,因此编译后的程序每次在使用该变量时都需要从变量的地址中读取数据,而不是从寄存器中获取。 例如: ```c volatile int a; ``` 四、extern关键字 ...

    C语言中关键字volatile的用法

    摘要:本文详细介绍了C语言中关键字volatile的用法、注意事项和注意点,包括volatile关键字的定义、用法、优化器对volatile变量的处理、volatile变量的例子、volatile关键字的含义,以及volatile变量在并行设备、...

    C语言中的32个关键字

    C语言的关键字是指那些具有特殊含义的标识符,它们在编译过程中扮演着重要的角色。这些关键字不能用作变量名、函数名等自定义标识符。以下是C语言中的32个关键字及其用途: 1. **auto**:声明自动变量。通常情况下...

Global site tag (gtag.js) - Google Analytics