找回密码
 立即注册

QQ登录

只需一步,快速开始

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

写程序 不用函数 是不是代码就变长了?

  [复制链接]
跳转到指定楼层
楼主
ID:709761 发表于 2022-3-9 09:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:879809 发表于 2022-3-9 17:10 | 只看该作者
长不长关键看你的实现逻辑是否最优,用不用函数无关。
回复

使用道具 举报

板凳
ID:1006015 发表于 2022-3-9 18:08 | 只看该作者
如果代码很长的话,函数调用简洁明了,很容易看懂。相反,不用函数的话,则会生涩难懂。
回复

使用道具 举报

地板
ID:1008998 发表于 2022-3-9 20:38 | 只看该作者
写程序在逻辑一样的情况下,我还是比较习惯用函数。方便快捷不容易出现特殊情况
回复

使用道具 举报

5#
ID:584814 发表于 2022-3-10 08:25 | 只看该作者
未必。比如HELLO或点灯,用函数代码会增加。
用函数如造模块,用不用都可以,但为啥罕见有人不用呢,你应该懂的
回复

使用道具 举报

6#
ID:1008919 发表于 2022-3-10 10:13 | 只看该作者
未必 看项目设计 常用编程用函数简单点 有条理用函数调用
回复

使用道具 举报

7#
ID:551638 发表于 2022-3-10 10:17 | 只看该作者
不是变长了,是可读性,还有移植性都降低了,而且不美观
回复

使用道具 举报

8#
ID:712493 发表于 2022-3-10 10:34 | 只看该作者
1842559923 发表于 2022-3-10 10:17
不是变长了,是可读性,还有移植性都降低了,而且不美观

但能不能说不用函数调用 也就不需要现场保护啥的,更不需要PC长距离跳转
回复

使用道具 举报

9#
ID:824490 发表于 2022-3-10 12:22 | 只看该作者
麻烦你,把你对“函数”这个词的理解,说说看?
回复

使用道具 举报

10#
ID:1009420 发表于 2022-3-10 12:33 | 只看该作者
看项目设计 常用编程用函数简单点 有条理用函数调用
回复

使用道具 举报

11#
ID:824490 发表于 2022-3-10 12:41 | 只看该作者
很难想象,编程写代码不用“函数”,有谁能贴一段没有“函数”的代码?

个人认为,不同的编译语言对“函数”的叫法不同:A(基于ASM)、B(基于BASIC)叫做“Sub”(子程序),;
而C(C51、C#)之类就有“FUNCTION”的叫法。
“函数”的特点就是代码可读、逻辑、复用、移植等等的体现。
不用函数,似乎还没见过。比如C51中,串口中断,就是一个“函数”,最常见的delay_ms(x)也 一个“函数”,更别提显示“函数”、按键扫描“函数”。。。

再次请求:有谁能贴一段没有“函数”的代码让我学习学习?
回复

使用道具 举报

12#
ID:879809 发表于 2022-3-10 16:45 | 只看该作者
名字不是重点 发表于 2022-3-10 12:41
很难想象,编程写代码不用“函数”,有谁能贴一段没有“函数”的代码?

个人认为,不同的编译语言对“函 ...

其实你把函数都定义成inline属性事实上(从机器码角度考虑)就没有函数了。所有的函数都在调用位置展开,不存在调用和返回。
回复

使用道具 举报

13#
ID:824490 发表于 2022-3-10 20:17 | 只看该作者
rundstedt 发表于 2022-3-10 16:45
其实你把函数都定义成inline属性事实上(从机器码角度考虑)就没有函数了。所有的函数都在调用位置展开, ...

不存在调用和返回?那些随机事件如何处理?比如串口接收事件,难道每个指令完成后都要判断一下标志?
然后程序的PC指针从ORG 000H 就一路一直走到ROM空间尽头?才疏学浅,真想不出。。
回复

使用道具 举报

14#
ID:879809 发表于 2022-3-10 20:39 | 只看该作者
名字不是重点 发表于 2022-3-10 20:17
不存在调用和返回?那些随机事件如何处理?比如串口接收事件,难道每个指令完成后都要判断一下标志?
然 ...

自然有别的逻辑来实现你的功能。你没用过inline才疏学浅而已。
回复

使用道具 举报

15#
ID:824490 发表于 2022-3-10 20:56 | 只看该作者
rundstedt 发表于 2022-3-10 20:39
自然有别的逻辑来实现你的功能。你没用过inline才疏学浅而已。

贴个代码上来,让我学习一下?
回复

使用道具 举报

16#
ID:1009545 发表于 2022-3-10 22:33 | 只看该作者
用函数,就是把复杂的过程模块化,代码不见得就变长了。但可读性高了。就是用汇编写,都要用函数。
回复

使用道具 举报

17#
ID:1009545 发表于 2022-3-10 22:44 | 只看该作者
rundstedt 发表于 2022-3-10 20:39
自然有别的逻辑来实现你的功能。你没用过inline才疏学浅而已。

如果有变量,还是要压堆杙的。
回复

使用道具 举报

18#
ID:879809 发表于 2022-3-10 22:51 | 只看该作者
maoyongyi 发表于 2022-3-10 22:44
如果有变量,还是要压堆杙的。

inline不存在压栈,参数根本就不传递。
回复

使用道具 举报

19#
ID:624769 发表于 2022-3-10 23:35 | 只看该作者
名字不是重点 发表于 2022-3-10 20:56
贴个代码上来,让我学习一下?

他就是偷换概念,你还让他发代码?

就算写个流水灯 都需要 “main函数”,所以,这个“不用函数”这个伪命题,居然能讨论到那么多楼,也够奇葩的。

inline 本来就是写在函数里的,然后来跟你说站在机器的角度考虑没有函数,就是一个断章取义偷换概念的喷子,理他干啥?
回复

使用道具 举报

20#
ID:824490 发表于 2022-3-11 08:48 | 只看该作者
指数布丁字数布丁

哈哈~~
回复

使用道具 举报

21#
ID:382454 发表于 2022-3-11 16:26 | 只看该作者
规范的都是写与一个个函数,解说一定要标注清楚,函数再做成一个一个模块化的组件,应用的时候把这些模块调出来就可以组成一个系统了,最多就是局部小改一下。这样才有时效,代码看起来整洁,简洁,明了。
如果你乱写一通,那时间长了自己不认得了。对吧!!!!
回复

使用道具 举报

22#
ID:488334 发表于 2022-3-12 03:04 | 只看该作者
写函数不一定代码会变短,但是可移植性,可读性都高了。想节省内存,还是得增强自己的软件编写能力,也就是增强脑子的逻辑
回复

使用道具 举报

23#
ID:1010140 发表于 2022-3-13 16:39 | 只看该作者
不一定代码会变长,关键看程序是如何实现的,使用函数会使代码美观,可读性变好
回复

使用道具 举报

24#
ID:1006510 发表于 2022-3-15 22:31 | 只看该作者
在团队编写程序时,使用函数会使得其它成员能够读懂程序,但是代码长度是由人为编写的逻辑决定的。比如一个定时器做时钟LCD1602显示程序,我的师兄全部打下来,实现功能后,用了七百多行代码,一看程序发现有很多while,if,for等嵌套。但是实现同样功能的代码,我的学长打下了就只有四百多行。代码长度主要还是看个人编写习惯、编写技巧和编写格式。
回复

使用道具 举报

25#
ID:1010818 发表于 2022-3-16 14:41 | 只看该作者
不一定,要分情况的,有的情况下一个简单地逻辑就可以解决,不需要用到函数,用函数可能会把问题变得更加复杂。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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