每天C一下之一

[复制链接]
4574|31
香水城主 发表于 2013-11-16 11:15 | 显示全部楼层
在MCU环境里,代码空间是不开再生的,就是说是永久占用;而内存空间是可以重复利用的。

在实际运用中,要平衡好代码空间与数据空间的占用,有时需要用多余的代码换取内存,有时又要用内存来换取代码。楼主的题目就是属于这方面的尝试。
feilusia 发表于 2013-11-16 15:11 | 显示全部楼层
16777216 发表于 2013-11-14 23:07
a=a+b
b=a-b
a=a-b

unsigned char a = 0xff;
unsigned char b = 0xff;

a=a+b=0xfe;
b=a-b=……(不会算这个,等于0?)
a=a-b=……

16777216 发表于 2013-11-17 13:20 | 显示全部楼层
feilusia 发表于 2013-11-16 15:11
unsigned char a = 0xff;
unsigned char b = 0xff;

我不是在上文说过了么  计算不能超过范围.....哈哈 纯属娱乐
iiio051031448 发表于 2013-11-17 16:45 | 显示全部楼层
通宵敲代码 发表于 2013-11-15 21:28
你这厮定看过“编译原理”!

大神真的是潍坊人?
通宵敲代码 发表于 2013-11-17 17:35 | 显示全部楼层
iiio051031448 发表于 2013-11-17 16:45
大神真的是潍坊人?

出家人不打诳语。
ys_r@sh 发表于 2013-11-21 16:28 | 显示全部楼层
16777216 发表于 2013-11-15 11:39
可以的啊 单片机 计算机都是二进制存储而已

嗯 是的 可以
287651380 发表于 2014-1-23 15:29 | 显示全部楼层
jplzl10000 发表于 2014-1-24 11:40 | 显示全部楼层
通宵敲代码 发表于 2013-11-15 21:28
你这厮定看过“编译原理”!

看下反汇编
rcengtian 发表于 2014-1-24 13:18 | 显示全部楼层
没有意义吧?
diweo 发表于 2014-1-29 09:15 | 显示全部楼层
本帖最后由 diweo 于 2014-1-29 09:17 编辑

个人感觉意义不大。
用不着这么抠1个字节的存储空间,因为只要一个临时变量,用完就可以释放了。
可能有人会说,这里省一点,那里省一点可以省很多。那我建议用稍微容量大一点的型号。
人的精力都是有限的,要把有限的精力放要合适的地方。
hyh19890917 发表于 2014-2-8 13:25 | 显示全部楼层
16777216 发表于 2013-11-14 23:07
a=a+b
b=a-b
a=a-b

你不怕溢出么。。。。。
香水橙 发表于 2014-2-8 17:08 | 显示全部楼层
使用堆栈,多么简单:
push a
a = b
pop b
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部