从单片机基础到程序框架(全集 2019pdf版).pdf - 第304页

void main( ) //主函数 { GtMould. u8Data_A=1; / /依靠成员的 “名字”来 “调用” GtMould. u16Data_B=2 ; //依靠成员的 “名字”来 “调用” GtMould. u32Data_C=3 ; //依靠成员的 “名字”来 “调用” View(GtM ould.u8Data _A); //把结 构体成员 Gt Mould.u8Dat a_A 发送到电脑 端观察 View(GtM …

100%1 / 836
把上述程序转换成“普通数组”和“指针”的形式,给大家一个直观的对比,代码如下:
unsigned char Gu8MouldBuffer[7]; //相当于结构体变量 GtMould
unsigned char *pu8Data_A;
unsigned int *pu16Data_B;
unsigned long *pu32Data_C;
void main()
{
pu8Data_A=(unsigned char *)&Gu8MouldBuffer[0]; //依靠数组的下标[0]来“调用”
*pu8Data_A=1;
pu16Data_B=(unsigned int *)&Gu8MouldBuffer[1]; //依靠数组的下标[1]来“调用”
*pu16Data_B=2;
pu32Data_C=(unsigned long *)&Gu8MouldBuffer[3]; //依靠数组的下标[3]来“调用
*pu32Data_C=3;
while(1)
{
}
}
分析:上述两种代码,目标都是把 1,2,3 这三个数字存放在一个数组里。第一种用结构体的方式,第二
种用普通数组的方式。
【70.3 例程练习和分析。
现在编写一个练习的程序
/*---C 语言学习区域的开始。-----------------------------------------------*/
struct StructMould //“造模
{
unsigned char u8Data_A;
unsigned int u16Data_B;
unsigned long u32Data_C;
};
struct StructMould GtMould; //“生成”一个变量 GtMould。
void main() //主函数
{
GtMould.u8Data_A=1; //依靠成员的“名字”来“调用”
GtMould.u16Data_B=2; //依靠成员的“名字”来“调用”
GtMould.u32Data_C=3; //依靠成员的“名字”来“调用”
View(GtMould.u8Data_A); //把结构体成员 GtMould.u8Data_A 发送到电脑端观察
View(GtMould.u16Data_B); //把结构体成 GtMould.u16Data_B 发送到电脑端观察
View(GtMould.u32Data_C); //把结构体成 GtMould.u32Data_C 发送到电脑端观察
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
1 个数
十进制:1
十六进制:1
二进制:1
2 个数
十进制:2
十六进制:2
二进制:10
3 个数
十进制:3
十六进制:3
二进制:11
分析:
GtMould.u8Data_A 1。
GtMould.u16Data_B 2。
GtMould.u32Data_C 3。
【70.4 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改C 语言学习区域”代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口 51 习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。