发新帖我要提问
12
返回列表
打印

每天C一下之一

[复制链接]
楼主: 2009chinalj
手机看帖
扫描二维码
随时随地手机跟帖
21
香水城主| | 2013-11-16 11:15 | 只看该作者 回帖奖励 |倒序浏览
在MCU环境里,代码空间是不开再生的,就是说是永久占用;而内存空间是可以重复利用的。

在实际运用中,要平衡好代码空间与数据空间的占用,有时需要用多余的代码换取内存,有时又要用内存来换取代码。楼主的题目就是属于这方面的尝试。

使用特权

评论回复
22
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=……

使用特权

评论回复
23
16777216| | 2013-11-17 13:20 | 只看该作者
feilusia 发表于 2013-11-16 15:11
unsigned char a = 0xff;
unsigned char b = 0xff;

我不是在上文说过了么  计算不能超过范围.....哈哈 纯属娱乐

使用特权

评论回复
24
iiio051031448| | 2013-11-17 16:45 | 只看该作者
通宵敲代码 发表于 2013-11-15 21:28
你这厮定看过“编译原理”!

大神真的是潍坊人?

使用特权

评论回复
25
通宵敲代码| | 2013-11-17 17:35 | 只看该作者
iiio051031448 发表于 2013-11-17 16:45
大神真的是潍坊人?

出家人不打诳语。

使用特权

评论回复
26
ys_r@sh| | 2013-11-21 16:28 | 只看该作者
16777216 发表于 2013-11-15 11:39
可以的啊 单片机 计算机都是二进制存储而已

嗯 是的 可以

使用特权

评论回复
27
287651380| | 2014-1-23 15:29 | 只看该作者

使用特权

评论回复
28
jplzl10000| | 2014-1-24 11:40 | 只看该作者
通宵敲代码 发表于 2013-11-15 21:28
你这厮定看过“编译原理”!

看下反汇编

使用特权

评论回复
29
rcengtian| | 2014-1-24 13:18 | 只看该作者
没有意义吧?

使用特权

评论回复
30
diweo| | 2014-1-29 09:15 | 只看该作者
本帖最后由 diweo 于 2014-1-29 09:17 编辑

个人感觉意义不大。
用不着这么抠1个字节的存储空间,因为只要一个临时变量,用完就可以释放了。
可能有人会说,这里省一点,那里省一点可以省很多。那我建议用稍微容量大一点的型号。
人的精力都是有限的,要把有限的精力放要合适的地方。

使用特权

评论回复
31
hyh19890917| | 2014-2-8 13:25 | 只看该作者
16777216 发表于 2013-11-14 23:07
a=a+b
b=a-b
a=a-b

你不怕溢出么。。。。。

使用特权

评论回复
32
香水橙| | 2014-2-8 17:08 | 只看该作者
使用堆栈,多么简单:
push a
a = b
pop b

使用特权

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

本版积分规则