volatile unsigned char; volatile有利于全局变量的实时更新,尤其含有中断中改变的量

转载 2016年06月02日 12:29:40

volatile unsigned char *pt; volatile是什么意思?

>;>; 每个变量都会被改变的啊!?
>;>; 那么在什么情况下才需要用volatile?

如果程序中的变量的值不仅仅取决于程序本身中的赋值,而且程序之外的东西,如系统中断、其它进程或线程等也能改变它的值的话,为了保证在使用
这个变量的值的时候,它的值始终是最“新”的,因此对此变量加 volatile 声明。volatile是一个类型指示符,告诉编译器不要对涉及到这个变量的地方
进行优化,如不要改变语句的排列顺序、不要把这个变量放到寄存器中(以加快程序的执行速度)等,防止读到的这个变量的值是一个无效的值(比如
是过去的一个拷贝值)。

对于一般程序中的变量,无须加 volatile 声明。

volatile unsigned char; volatile有利于全局变量的实时更新,尤其含有中断中改变的量

volatile unsigned char *pt; volatile是什么意思? >;>; 每个变量都会被改变的啊!? >;>; 那么在什么情况下才需要用volatile? 如果程序中...
  • hookie1990
  • hookie1990
  • 2016年06月02日 12:29
  • 317

对于(*(volatile unsigned char *)(x))的理解(转载新浪微博的一位博主)

 在看vivi代码时,Nand_read.c文件中有下面一段 #define __REGb(x) (*(volatileunsigned char *)(x)) #define __...
  • taoliqing123
  • taoliqing123
  • 2016年05月11日 09:59
  • 552

对(volatile unsigned char *)分析

对(volatile unsigned char *)分析   对于(volatile unsigned char *)0x20我们再分析一下,它是由两部分组成: 1...
  • ysdaniel
  • ysdaniel
  • 2011年08月07日 17:49
  • 2593

#define XBYTE ((unsigned char volatile xdata *)

xdata是large存储类型,volatile是通过硬件来改变指针指向的内容。 #define XBYTE ((unsigned char volatile xdata *) 0) 定义  ...
  • chenhssadf
  • chenhssadf
  • 2013年05月31日 11:50
  • 2639

volatile__unsigned__char详解

标签: *(volatile  unsigned  char  *)   (*(volatile unsigned char *)0x56000010)      以前看到#define SRE...
  • lufeiop02
  • lufeiop02
  • 2012年09月28日 00:10
  • 1444

(*(volatile unsigned char *)0x56000010)

以前看到#define SREG    (*(volatile unsigned char *)0x5F)这样的定义,总是感觉很奇怪,不知道为什么,今天终于有了一点点心得,请大虾们多多批砖~~~  ...
  • yezhen910328
  • yezhen910328
  • 2014年02月26日 10:41
  • 612

((unsigned char volatile xxxx *) 0)

#include” 当51单片机通过8255和锁存器74LS273来扩展IO时,经常用到头文件absacc.h。 在程序中,用“#include”即可使用其中定义的宏来访问绝对地址,包括:...
  • husion01
  • husion01
  • 2013年01月12日 17:25
  • 3877

在中断程序里修改全局变量的童鞋注意啦~(C中的volatile作用 转载~)

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

【补充】 嵌入式中的 *(volatile unsigned int *)理解

先看一个例子:*(volatile unsigned int *)0x500 = 0x10 ①(unsigned int *)0x500:将地址0x500强制转化为int型指针 ②(unsi...
  • czg13548930186
  • czg13548930186
  • 2017年06月12日 13:11
  • 995

extern和volatile的用法

extern 的用法 extern的用法的对象主要是变量和函数。 用extern声明外部变量 ①什么是外部变量 外部变量是指在文件或者函数外部定义的全局变量。外部变量仅定义一次并且在所有的函数之外。...
  • XGsilence
  • XGsilence
  • 2014年03月01日 11:12
  • 2971
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:volatile unsigned char; volatile有利于全局变量的实时更新,尤其含有中断中改变的量
举报原因:
原因补充:

(最多只允许输入30个字)