|
在C语言中,如果P为一个指针,刚*P表示该指针所指向内存的数据
考虑一个C语言中最基本的问题,要求用指针对地址0x54000018的数据(100)进行读写,程序如下:
INT I;
INT *P; 定义P为指针
P=(INT *)0x54000018; 将整数0x54000018转换为指针并赋值于P
I=*P; 将地址0x54000018保存的数据100赋值于I,即I=100
*P=200; 将200保存在0x54000018处。
同理,在上面我们可以定义
P=(unsigned*)(_ISR_STARTADDREs+0x84)即将整数转换为指针并赋值于P
对该地址进行读写引用*P即*P=*(unsigned*)(_ISR_STARTADDREs+0x84)
我们定义#define pISR_EINT0 *P,用pISR_EINT0来代替*P对地址_ISR_STARTADDREs+0x84处的数据进行操作,即
#define pISR_EINT0 ,*(unsigned*)(_ISR_STARTADDREs+0x84)
pISR_EINT0是指向内存 _ISR_STARTADDREs+0x84的数据
pISR_EINT0=100,即将内存_ISR_STARTADDREs+0x84处数据赋值为100
I=pISR_EINT0将将内存_ISR_STARTADDREs+0x84处数据赋值于I. |
|