Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44016
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-08 10:21
文章分类
文章存档

2016年(1)

2015年(17)

我的朋友

分类: 嵌入式

2015-01-08 10:21:58

 

#define rUTXH0 (*(volatile unsigned int *)0x50000020)

相信你一定碰到过这样的定义,那它究竟代表着什么意思呢?其实很简单...

unsigned int 0x50000020 什么意思?----一个uchar数据而已。(32位的)

(unsigned int *)0x50000020 什么意思?----一个uchar指针而已,即代表一个地址而已。

*(unsigned int *)0x50000020 什么意思?----指针的指针,即地址为0x50000020里的数据而已。

关键字volatile的作用是什么呢?----它声明那个变量可以被意想不到的改变。即随便往那个地址里面写什么数据。一般用于声明:中断的非自动变量、寄存器定义、再入函数。总之,被它声明的变量编译器不会进行优化,每次都会小心翼翼的从内存中读取、修改、再写入内存。

阅读(606) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:关于volatile的详解

给主人留下些什么吧!~~