打印

定义的变量编译后顺序乱了,没法用指针------?

[复制链接]
1738|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianwailou|  楼主 | 2008-8-6 15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   我定义了一些变量,在程序中要用指针对这些变量进行修改.可编译后变量的顺序变了(map文件中看到的),没法用指针.
   其中的一些变量没有用到.我在初始化时全都随便赋了个值,这样才在map文件中出现,但顺序不对.大家有没有什么办法.使得变量在RAM中按定义时的顺序排列.以便操作.

相关帖子

沙发
张明峰| | 2008-8-8 09:21 | 只看该作者

没有用到的变量会被编译器删除

既然程序中没有用到,又为何要占内存空间呢?编译器自以为聪明地这么认为,然后就真地动了刀。
令人欣慰的是我们人类永远比工具要聪明,对付这样的问题,你只需在prm文件中指定哪些变量一定要保留,不管其被用到与否:

ENTRIES   //do not eliminate variables
var1 var2
END

使用特权

评论回复
板凳
tianwailou|  楼主 | 2008-8-9 22:41 | 只看该作者

给变量固定RAM地址,也可以.

    谢谢。你说的办法我去试试。现在我是强制给它赋个地址,就是用@,这样也可以解决问题.

使用特权

评论回复
地板
张明峰| | 2008-8-11 09:46 | 只看该作者

变量固定RAM地址将会非常危险

这样声明的变量编译器将不保留地址空间。换句话说同一地址可能被其他变量所占用覆盖。

使用特权

评论回复
5
ayb_ice| | 2008-8-11 11:52 | 只看该作者

@變量必須在prm文件中保留才能確保正確

這要修改prm文件

使用特权

评论回复
6
tianwailou|  楼主 | 2008-8-17 14:55 | 只看该作者

谢谢指点

我照着二位的指点试过了。问题以解决。谢谢。

使用特权

评论回复
7
TRUE_ARM| | 2008-9-3 08:07 | 只看该作者

为何不用"结构"包装?

如题

使用特权

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

本版积分规则

4

主题

11

帖子

1

粉丝