可以用指针(Pointer)的方法访问变量,用指针访问数组、结构、联合变量非常方便。例如,指向结构类型的指针变量p,
struct GPDMUX_BITS ∗p; //声明一个指向结构GPDMUX_BITS的指针p
struct GPDMUX_BITS bit; //声明一个结构GPDMUX_BITS类型的变量bit
p=&bit; //结构指针p指向变量bit
结构变量bit的成员T1CTRIP_PDPA_GPIOD0可用下述3种形式之一访问:
bit.T1CTRIP_PDPA_GPIOD0 //用结构变量点运算符的方法访问
(∗p).T1CTRIP_PDPA_GPIOD0//用间接访问运算符指针和点运算符访问
p->T1CTRIP_PDPA_GPIOD0//用指针指向(箭头运算符)成员变量(www.daowen.com)
ANSI C新标准增加了一种void∗指针类型,即可以定义一个指针变量,但不指定它是指向哪一种数据类型,例如
unsigned long∗Source=(void∗)&PieVectTableInit;
其中PieVectTableInit是结构PIE_VECT_TABLE(中断向量)的一个变量。地址&PieVectTableInit被(void∗)强制转换为void∗类型。指针Source指向unsigned long类型。
例如,描述中断向量表的指针PINT
结构PIE_VECT_TABLE的所有成员均为中断函数的首地址(中断向量),即指向中断函数的指针。因此,在定义其成员如PIE1_RESERVED的时候,要在其前面加PINT,表示PIE1_RESERVED是PINT类型的变量,即指向中断函数的指针,这样程序显得简洁。
C语言中访问片内外数据存储器(或外设寄存器),可以用指针的方法实现。下面举例说明。
例4-3 将DSP的数据存储器400H开始的16个单元复制到500H开始的单元。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。