*(volatile unsigned long *) 语法

来源:互联网 发布:淘宝积分有什么用处 编辑:程序博客网 时间:2024/06/06 03:09

#define GPJ2CON (*(volatile unsignedlong *) 0xE0200280)

开始对于上面的语法不太理解,但通过拆分,我们可以看的更明白:

1(unsignedlong *)变量,代表变量是一个unsignedlong类型的指针;例如:(unsignedlong *)i ,语句中 i即为 (unsigned long*)的一个指针;

2volatile是一个修饰符,告诉编译器此段代码不要优化;因此,(volatileunsigned long *)变量,意思是未优化指针类型的变量;例如:(volatile unsignedlong *)i ,语句中 i即为 (volatile unsignedlong *)的一个指针;

3(volatileunsigned long *) 0xE0200280,此处把变量换成了固定地址,意思是(volatileunsigned long *)指针指向固定的地址0xE0200280

4、前面再加一个*,即*(volatile unsignedlong *) 0xE0200280 代表 GPJ2CON 是一个变量,我们既可以给固定地址中赋值,也可以从固定地址中取值。例如:(volatile unsignedlong *)i ,语句中 i即为 (volatile unsignedlong *)的一个指针,而*i即代表 i中存储的值,我们既可以对其赋值,又可以从其中取值;

注:此博文来自http://www.cnblogs.com/zhangpengshou/p/3597646.html

阅读全文
0 0
原创粉丝点击