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

[复制链接]
2954|6
 楼主| tianwailou 发表于 2008-8-6 15:05 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;我定义了一些变量,在程序中要用指针对这些变量进行修改.可编译后变量的顺序变了(map文件中看到的),没法用指针.<br />&nbsp;&nbsp;&nbsp;其中的一些变量没有用到.我在初始化时全都随便赋了个值,这样才在map文件中出现,但顺序不对.大家有没有什么办法.使得变量在RAM中按定义时的顺序排列.以便操作.
张明峰 发表于 2008-8-8 09:21 | 显示全部楼层

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

既然程序中没有用到,又为何要占内存空间呢?编译器自以为聪明地这么认为,然后就真地动了刀。<br />令人欣慰的是我们人类永远比工具要聪明,对付这样的问题,你只需在prm文件中指定哪些变量一定要保留,不管其被用到与否:<br /><br /><font color=#0000FF>ENTRIES</font>&nbsp;&nbsp;&nbsp;//do&nbsp;not&nbsp;eliminate&nbsp;variables<br />var1&nbsp;var2<br /><font color=#0000FF>END</font>
 楼主| tianwailou 发表于 2008-8-9 22:41 | 显示全部楼层

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

&nbsp;&nbsp;&nbsp;&nbsp;谢谢。你说的办法我去试试。现在我是强制给它赋个地址,就是用@,这样也可以解决问题.
张明峰 发表于 2008-8-11 09:46 | 显示全部楼层

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

这样声明的变量编译器将不保留地址空间。换句话说同一地址可能被其他变量所占用覆盖。
ayb_ice 发表于 2008-8-11 11:52 | 显示全部楼层

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

這要修改prm文件
 楼主| tianwailou 发表于 2008-8-17 14:55 | 显示全部楼层

谢谢指点

我照着二位的指点试过了。问题以解决。谢谢。
TRUE_ARM 发表于 2008-9-3 08:07 | 显示全部楼层

为何不用"结构"包装?

如题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

11

帖子

1

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