标题: 关于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