#define GPJ2CON (*(volatile unsigned long *) 0xE0200280)
开始对于上面的语法不太理解,但通过拆分,我们可以看的更明白:
1、(unsigned long *)变量,代表“变量”是一个unsigned long类型的指针;例如:(unsigned long *)i ,语句中 i 即为
2、volatile是一个修饰符,告诉编译器此段代码不要优化;因此,(volatile unsigned long *)变量,意思是未优化指针类型的变量;例如:(volatile
3、(volatile unsigned long *) 0xE0200280,此处把变量换成了固定地址,意思是(volatile unsigned long *)指针指向固定的地址 0xE0200280
4、前面再加一个*,即* (volatile unsigned long *) 0xE0200280 代表 GPJ2CON 是一个变量,我们既可以给固定地址中赋值,也可以从固定地址中取值。例如:(volatile
注:此博文来自http://www.cnblogs.com/zhangpengshou/p/3597646.html