找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2636|回复: 5
打印 上一主题 下一主题
收起左侧

关于51单片机程序使用结构体指针和for循环的疑问

[复制链接]
跳转到指定楼层
楼主
ID:636538 发表于 2020-8-4 15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在还太浅薄,最近在某站上看一个师傅讲的STC15视频,代码使用了很多结构体、枚举、结构体指针,搞得我感觉一个很简单的点亮小灯程序,都变的高大上啦,有没有大佬,讲一下,为什么这样写好,我看写的代码量反而增加啦?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:636538 发表于 2020-8-4 16:34 | 只看该作者
自己顶一下,别沉下去
回复

使用道具 举报

板凳
ID:313246 发表于 2020-8-4 16:45 | 只看该作者
结构体、枚举、指针都是最基本的,不是什么高大上,你多见见就好了,没什么奇怪的
回复

使用道具 举报

地板
ID:804115 发表于 2020-8-4 18:07 | 只看该作者
结构体可以将同一功能类的变量归纳总结到一起,且地址连续,使用起来更方便,也更好用指针整体操作;
枚举的变量虽然可以用define定义,但是还是有优势的,将同一类的值放到一起,更直观,且规定了变量的范围,用这之外的值会报错,可以判断错误。define就是纯替代,不能检测错误。
结构体指针就更灵活了,可以完成很多高内聚低耦合的代码,这个说不太清除,但是代码看多了,你就会发现它的好处了。一般在51上很少这样用,因为51资源太匮乏了。
回复

使用道具 举报

5#
ID:636538 发表于 2020-8-5 11:37 | 只看该作者
1692483014 发表于 2020-8-4 18:07
结构体可以将同一功能类的变量归纳总结到一起,且地址连续,使用起来更方便,也更好用指针整体操作;
枚举 ...

嗯嗯,谢谢回复,明白啦
回复

使用道具 举报

6#
ID:636538 发表于 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);
       
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表