当前位置: 首页 > wzjs >正文

济南可信网站百度在线翻译

济南可信网站,百度在线翻译,wordpress站关注别人,菏泽做网站的公司最近看了很多单片机STM32的的相关程序,尤其是设计到ringbuff、buffer_manage、os_memory预计mem_manage等程序中间层的用法,我对这句话有了一些更深的思考,现在记录下来,希望对处于相同阶段的程序一些思想启迪。首先“数据结构”也…

最近看了很多单片机STM32的的相关程序,尤其是设计到ringbuff、buffer_manage、os_memory预计mem_manage等程序中间层的用法,我对这句话有了一些更深的思考,现在记录下来,希望对处于相同阶段的程序一些思想启迪。

首先“数据结构”也就是对一个事物用结构体类型、枚举类型、共用体类型、数组等进行封装描述,其中结构体类型是最常用的,例如STM32单片机中寄存器组就用一个结构体类型进行了封装。我在这里想说的是定义相关类型,内部成员有好多个。定义好数据结构后,下一步就是要定义一个相关的真实的数据,绝大多数情况就是全局变量,也有使用malloc、free申请释放的堆内存。最后就是操纵这个数据内部成员变量的相关函数,这就是算法,API函数,也叫接口函数。后面统称为算法。

再讲一下算法,上面我提到算法就是对结构体变量内部成员进行写读操作。这里就涉及到如何访问全局结构体变量内部的成员问题,答案是“使用结构体指针变量作为函数传参”的方式进行。我们定义接口函数的时候使用结构体指针变量来指向某个结构体变量。因为传参的过程是压栈(涉及到算法“=”)的过程,早期编译器不支持直接调用结构体本身,现在的编译器开始支持了,不过为了兼容早期程序,还是不建议直接将结构体直接赋值给函数参数,另外如果直接赋值,传递的是结构体成员内存格子中存储的数值,也无法在函数内部对函数外面的结构体内部成员进行修改(又名输出型参数)。我们在函数内部主要做的工作有:读取外部结构体的数据,如果需要暂存,那就要定义临时变量,也就是栈内存进行存储。我现在的感受就是写函数内部程序的时候如果需要获取结构体的成员,并且暂存的话,就要定义某个临时栈内存进行写操作,这样就相当于“数据的产生”(定义了某个变量并且写入了有效数据),光写进去还不行,我们还需要在后面的运算中去将临时栈内存中的变量读出来参数某些运算。这样又产生新的变量,于是又定义新变量,又进行写操作,又进行读操作... ... ...然后一直进行下去,直到函数运行结束。当然这个过程不可避免的会读结构体内部成员,以及通过指针变量的方式进行写有效数值。宏观上看函数运行的过程就表现为结构体内部成员变量的数值不断地被读,然后被写。最后函数运行可能会有return返回值,这个返回值大部分情况代表函数体内部运行的过程,经常看到提前return返回了,这就是“卫语句的写法”。从宏观上看就是一句话:返回值代表函数运行的过程,参数列表存储着运算的结果。

总结一下:定义相关类型,然后相关类型变量,最后定义API函数不断访问(写/读,生产/消费)变量本身或者变量内部成员,最后将这些封装写成一对头文件.h和源文件.c。这样就是程序的写法。现在想想这样写的好处就是:调用API函数对变量进行写有效数值,然后其他源文件可以直接访问全局变量的内部成员,也可以访问对应API函数进行读操作。两种方式都可以,在实际应用中都会大量应用。其中直接访问变量本身或者内部成员更方便。我们根据里面存储的数据然后加上各种逻辑判断、利用3大程序结构,就可以知道程序现在代表的状态,以及接下来要做什么。

整个过程,千万别在使用全局变量上吝啬使用,该用的时候还要用,没有全局变量,哪来的算法。我们大部分人不是高手,所以在程序编写过程中甚至产生了一些多余的全局变量也是不可避免的,重点是要实现要完成的功能。我再很长时间内都在摸索如何少用全局变量,现在想想真实有点贪心不足蛇吞象了,这个一定要切记。而且,现在51单片机、STM32单片机以及更高级的能跑linux内核的芯片内部有足够多的内存空间,所以平时写代码,真不用节省着来。可能随着编写能力的提升,可能会考虑节约使用全局变量以及隔离、分层思想,不能跨层访问等等,但是现阶段我暂时不会再考虑这样做了。

http://www.dtcms.com/wzjs/531785.html

相关文章:

  • 网站阴影引擎搜索大全
  • 如何做网站竞品分析网站运营工作的基本内容
  • 北京做网站制作的公司灰色关键词怎么做排名
  • 个人网站开发多少钱百度手机版
  • 成都网站建设服务密需湖南岚鸿案例百度推广优化中心
  • 什么是网站策划书谷歌seo排名公司
  • 未来做啥网站致富软文范例大全800
  • 有什么网站可以做编程题软文推广发布
  • wap端网站建设郑州百度推广代理公司
  • 邢台做网站服务网络营销方式与工具有哪些
  • 帕绍网站建设企业文化墙
  • 盐城那里做网站好点百度第三季度财报2022
  • 阿里巴巴网站装修怎么做全屏大图抖来查关键词搜索排名
  • 杭州的网站开发网站优化招聘
  • wap网站 链接微信淄博seo怎么选择
  • 网站的后台怎么做调查问卷网站ui设计
  • 智慧旅游门户网站建设方案成都网站建设系统
  • 上海 网站备案拍照网站注册免费
  • 网站上的中英文切换是怎么做的商品推广软文写作500字
  • wordpress注册弹窗代码seo标签优化
  • 知名网站制作案例深圳新闻最新事件
  • java 开发 网站网站建设技术
  • 赞皇建站建设蓝牙耳机网络营销推广方案
  • axure做网站原型seo成都培训
  • 网站的规划与建设seo工程师
  • 网站建设招聘条件网络销售公司经营范围
  • 网站建设的成本与费用有哪些网站接广告
  • 浙江城建建设集团网站关键词优化的原则
  • 免费名片在线设计网站推广哪些app最挣钱
  • 做网站需要做h5吗时事热点新闻