打印

考考大家(KEIL C51)

[复制链接]
2146|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ayb_ice|  楼主 | 2009-2-9 21:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// small模式下
unsigned char pdata x _at_ 0x10;
unsigned char data  y _at_ 0x10;
unsigned char data  z;

    x = 5;
    y = 6;
    z = ((unsigned char*)&x)[0];

    请问z=多少,为什么,不允许看反汇编.

相关帖子

沙发
hotpower| | 2009-2-9 22:09 | 只看该作者

俺肯定不及格~~~

使用特权

评论回复
板凳
computer00| | 2009-2-9 22:21 | 只看该作者

看起来指就是y的值吧...俺仿真看看结果先...

使用特权

评论回复
地板
computer00| | 2009-2-9 22:27 | 只看该作者

晕...结果访问的是x...看来还是写清楚安全啊...

z = ((unsigned char data *)&x)[0];
 这样它就跑不掉了...

使用特权

评论回复
5
yslf1985| | 2009-2-9 23:32 | 只看该作者

阿门~

对我来说太深奥了。。

使用特权

评论回复
6
xzhenggen| | 2009-2-10 08:37 | 只看该作者

((unsigned char*)&x)[0];这不就是X的绝对地址吗?

((unsigned char*)&x)[0];这不就是X的绝对地址吗?

使用特权

评论回复
7
lnskngdc| | 2009-2-10 09:38 | 只看该作者

实际中真有人这么编吗?

感觉有点怪怪的
我用keilc五年了,一直是老老实实的编代码,不敢用花里胡哨的方式,因为那会导致占用资源更多,易读性更差

使用特权

评论回复
8
ayb_ice|  楼主 | 2009-2-10 11:34 | 只看该作者

这可不是花里胡哨

  其实KEIL是很聪明的,会自动根据变量类型指向同类型,当然前提是不能人为指向具体空间,这对移植程序很有利,试想如果不是这样的结果,如果修改了变量的存储空间,移植是多么麻烦的事情.
  我也是无意中发现的.

使用特权

评论回复
9
computer00| | 2009-2-10 12:10 | 只看该作者

依赖编译器不是件好事啊...还是明确指定为妙。

使用特权

评论回复
10
ayb_ice|  楼主 | 2009-2-10 12:29 | 只看该作者

LS,明指不利于移植程序

我正是在修改存储空间时发现这个的,我也是想要KEIL的结果.

使用特权

评论回复
11
HotTask51| | 2009-2-11 09:54 | 只看该作者

哈哈~~~

使用特权

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

本版积分规则

222

主题

15461

帖子

34

粉丝