打印

[讨论]用C语言写代码,如何优化代码尺寸大小

[复制链接]
楼主: 古道热肠
手机看帖
扫描二维码
随时随地手机跟帖
81
inter_zhou| | 2009-7-12 18:40 | 只看该作者 回帖奖励 |倒序浏览

楼上的确是很专业,我还比较外行!

使用特权

评论回复
82
come_on1| | 2009-7-13 10:12 | 只看该作者

受教了!

看了这么多,学到不少东西。继续学习!

使用特权

评论回复
83
古道热肠|  楼主 | 2009-7-13 11:23 | 只看该作者

哈哈,abc_ice在83楼的论断的确有道理

如果函数返回值是一个uchar,的确应该用ACC返回.还好位变量是用进位位C返回,效率较高.
印象中Keil早期也是给人做OEM生产的.

使用特权

评论回复
84
古道热肠|  楼主 | 2009-7-13 17:38 | 只看该作者

总结一下,告一段落,谢谢大家参与.

谢谢大家各抒已见
从宏观上提出的办法网友已给出了最佳答案
1.程序结构--代码复用   
2.算法--专用算法代替通用算法

从微观上来解决,很多网友已给出了速度又快,代码尺寸又小的演示程序,只要用心优化,总能做得更好!

哈哈,如果大家喜欢,可以开展下一个议题.

使用特权

评论回复
85
许世霞| | 2009-7-15 09:02 | 只看该作者

云雾中!

1:能否把“高内聚,低耦合,模块功能要单纯”这个说法做个详细的阐述呢?
2:宏观上,程序结构--代码复用;算法--专用算法代替通用算法。能再细致的总结一下吗?怎么个代码复用,什么样的是专用算法,什么样的是通用算法。
3:可不可以将微观上的代码优化方法把大家讨论的做个总结呢?让我这个莱鸟也能享受一下前辈们的劳动成果呵呵。。。。

    我是莱鸟,问题有点菜,不要笑我哦!期待中

使用特权

评论回复
86
pengwang2008| | 2009-7-16 20:40 | 只看该作者

程序量

还是小点好,特别是低价位的

使用特权

评论回复
87
Airwill| | 2009-7-16 21:19 | 只看该作者

79楼的代码可以编写 A51子程序库来完成

只是, KEIL 对于 A51 子程序, 都认为会改变所有寄存器!

另外, 感觉论坛里 每页 20 贴, 太紧张, 这样的帖子不长, 却分成了很多页!
而那个广告的签名也占了太多的显示版面. 是否可以将其移到专门的地方, 显示一会就够了.

使用特权

评论回复
88
古道热肠|  楼主 | 2009-7-17 12:42 | 只看该作者

讨论结束了

使用特权

评论回复
89
myic200610| | 2009-7-18 00:08 | 只看该作者

RE

学习了

使用特权

评论回复
90
jindiaozhanji| | 2009-7-20 11:06 | 只看该作者

学习中、、、

过去一直都知道,资源有限,该怎么为代码瘦身却一直不会,期待那位大虾能出本书,哈哈

使用特权

评论回复
91
Black_Boy| | 2009-7-20 19:13 | 只看该作者

使用指针

使用特权

评论回复
92
Black_Boy| | 2009-7-20 19:18 | 只看该作者

使用指针、结构体……

刚刚按错了,一般我在写菜单的时候,经常性用到的是结构体,结构体的嵌套也可以实现菜单的分层,通过指针调用结构体的基本属性,更能体现程序的分块化。还有像楼上各位说的,要节省RAM,只读形式的数组直接存在CODE区,比如有时AD检测要涉及到处理小数的时候,尽量不用浮点数,通过整数计算得出结果,在进行小数点的处理会比较好点。

使用特权

评论回复
93
hnk123| | 2009-7-21 16:21 | 只看该作者

回复

多用char
这个占的空间小点

使用特权

评论回复
94
feather| | 2009-7-22 11:16 | 只看该作者

童鞋,好好琢磨你的第二条吧

使用特权

评论回复
95
WOAILYMD| | 2009-7-22 13:57 | 只看该作者

47楼的是存在于KEIL中

有时候没有声明函数,而且把函数放在调用者后面,编译会出错,这时有2种办法,第一种,补声明;第二种,不声明,但把函数改放在调用者后面,则编译均会通过。
第2种方法是否省代码没注意过,应该会省点吧,其实这很好理解,被调用函数放在调用者前面,不声明只定义,自然是可以的了。

使用特权

评论回复
96
cdlongbo| | 2018-10-16 11:51 | 只看该作者
学习了!

使用特权

评论回复
97
mailshichao| | 2018-10-19 10:53 | 只看该作者
还好我不用一个字节一个字节的去扣flash的空间,公司更在乎的时候产品什么时候能出来;对于稍微功能多一点的程序来说,完善的程序架构比一点一点扣处理器的效率好多的。

使用特权

评论回复
98
eydj2008| | 2018-10-19 12:01 | 只看该作者
速度才是要优化的, 代码无所谓, 现在随便也有64K 256K 上M的
速度才是关键的.
要将一切算法 换成+-移位,  所有浮点转换UINT
然后又不能用64位 很多浮点转成UINT 都会面临大问题.

使用特权

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

本版积分规则