标题:
关于51单片机程序使用结构体指针和for循环的疑问
[打印本页]
作者:
SKYLAR123
时间:
2020-8-4 15:36
标题:
关于51单片机程序使用结构体指针和for循环的疑问
我现在还太浅薄,最近在某站上看一个师傅讲的STC15视频,代码使用了很多结构体、枚举、结构体指针,搞得我感觉一个很简单的点亮小灯程序,都变的高大上啦,有没有大佬,讲一下,为什么这样写好,我看写的代码量反而增加啦?
作者:
SKYLAR123
时间:
2020-8-4 16:34
自己顶一下,别沉下去
作者:
liweimin
时间:
2020-8-4 16:45
结构体、枚举、指针都是最基本的,不是什么高大上,你多见见就好了,没什么奇怪的
作者:
1692483014
时间:
2020-8-4 18:07
结构体可以将同一功能类的变量归纳总结到一起,且地址连续,使用起来更方便,也更好用指针整体操作;
枚举的变量虽然可以用define定义,但是还是有优势的,将同一类的值放到一起,更直观,且规定了变量的范围,用这之外的值会报错,可以判断错误。define就是纯替代,不能检测错误。
结构体指针就更灵活了,可以完成很多高内聚低耦合的代码,这个说不太清除,但是代码看多了,你就会发现它的好处了。一般在51上很少这样用,因为51资源太匮乏了。
作者:
SKYLAR123
时间:
2020-8-5 11:37
1692483014 发表于 2020-8-4 18:07
结构体可以将同一功能类的变量归纳总结到一起,且地址连续,使用起来更方便,也更好用指针整体操作;
枚举 ...
嗯嗯,谢谢回复,明白啦
作者:
SKYLAR123
时间:
2020-10-13 11:39
#include<stdio.h>
int main(void)
{
//第一种 结构体指针
// struct ucode
// {
// char u1;
// int u2;
// };
// struct ucode a={'a',98};
// struct ucode *p=&a;
//第二种
// struct ucode
// {
// char u1;
// int u2;
// }a={'a',98},*p=&a;
// struct ucode a={'a',98};
// struct ucode *p=&a;
// printf("p->u1=%c,p->u2=%d\n",(*p).u1,(*p).u2);//(*p).u1与 p->u1等价,表达相同的意思
//第三种
typedef struct
{
char u1;
int u2;
}ucode;
ucode a={'a',98};
ucode *p=&a;
printf("p->u1=%c,p->u2=%d\n",p->u1,p->u2);
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1