打印
[其他ST产品]

模块化

[复制链接]
1400|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaoxqi|  楼主 | 2017-2-26 20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机程序如果分成模块,通过连线连接这些模块间的输入和输出,直观明了,还容易修改逻辑,和领导还好解释,模块内部高度内聚,模块间几乎没有耦合,只有连线。
一部分模块和硬件相关,其它都是纯软件,修改时也只是改改软件模块和连线。
沙发
jiajs| | 2017-2-26 20:20 | 只看该作者
有点OO(面向对象)编程的意思了,就像java和C#似的的封装成类,看起来简单明了,只不过C语言不能不是面向对象的语言,不过还是可以效仿的

使用特权

评论回复
板凳
zhaoxqi|  楼主 | 2017-2-26 20:21 | 只看该作者
C语言很方便,但大多数软件开发人员,写软件求方便,到处使用全局变量,导致程序模块思想荡然无存,实在是让人头疼啊

使用特权

评论回复
地板
wyjie| | 2017-2-26 20:22 | 只看该作者
这点确实是,不过编程经验丰富的程序员将头文件和源文件编写的很好,变量也分别定义,全局变量放在一个头文件里,还是看个人的编程习惯了

使用特权

评论回复
5
jlyuan| | 2017-2-26 20:23 | 只看该作者
没觉得全局变量有什么不好,
只要把握住逻辑,别导致混乱。

使用特权

评论回复
6
zhanghqi| | 2017-2-26 20:25 | 只看该作者
现在芯片资源多,用不完。
我的项目经常用很多全局变量,变量名就有上百。

使用特权

评论回复
7
wyjie| | 2017-2-26 20:38 | 只看该作者
全局变量比较慢,这是真的。
所以,大批量处理要先导入局部变量,最后再导一次。

使用特权

评论回复
8
zhanghqi| | 2017-2-26 20:39 | 只看该作者
c里面的struct就可以达到一定程度的封装。

使用特权

评论回复
9
jlyuan| | 2017-2-26 20:40 | 只看该作者
如果C达不到要求,可以用C++。

使用特权

评论回复
10
dengdc| | 2017-2-26 20:41 | 只看该作者
通过一个全局的类指针去访问多个成员,总比访问多个全局变量要好些。

使用特权

评论回复
11
heweibig| | 2017-2-26 20:42 | 只看该作者
另一方面,命名空间也可以限定变量作用域,使用起来也很方便。

使用特权

评论回复
12
wuhany| | 2017-2-26 20:43 | 只看该作者

C 做不了这事,只有 C++。

使用特权

评论回复
13
jiahy| | 2017-2-26 20:44 | 只看该作者
现在手头上的项目就是用c来面向对象实现模块化,c还是很方便的,个人感觉还用不到c++,如果用到c++,新人还要学习c++,学习成本高于让他们深入学好C, 维护不方便。

使用特权

评论回复
14
spark周| | 2017-2-26 20:46 | 只看该作者
目前项目中全局变量是禁止使用的,只有模块的接口可以用静态的全局,这样模块化也好做写

使用特权

评论回复
15
jiaxw| | 2017-2-26 20:48 | 只看该作者
C怎么会做不了呢,那人家那些芯片的库函数怎么写出来的

使用特权

评论回复
16
liliang9554| | 2017-2-26 20:49 | 只看该作者
c用结构体和函数指针也可以写出类似class的简单的模块的

使用特权

评论回复
17
午夜粪车| | 2017-2-26 20:50 | 只看该作者
不过c还是面向过程为主

使用特权

评论回复
18
huangchui| | 2017-2-26 20:51 | 只看该作者
楼主的想法是像积木一样把一些“功能组件”在“框架”的约束下“快速搭建”成需要的“应用程序”。最重要的是,组件还必须做到“易用性”和“普适性”,遵守“开闭原则”,同时需要兼顾“高效率”和“低开销”。

使用特权

评论回复
19
zhenykun| | 2017-2-26 20:53 | 只看该作者
而 bsp 库基本不算具有一定功能的“组件”,而勉强能称为组件的那些协议栈、GUI 库等等,上述几方面特性都做的不好。

使用特权

评论回复
20
wyjie| | 2017-2-26 20:54 | 只看该作者
我认为 C 的抽象能力严重不足是导致无法实现优异的嵌入式组件的根本原因,而 C++ 天生具有强大的抽象能力,并且具有高效的多范型设计,完全可以实现各方面特性都优异的嵌入式组件,C++ 唯一的缺点是难度巨大,学习曲线陡峭,绝大部分人在学有所成之前就已经放弃了,也就无法领略到 C++ 的风采。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

粉丝