谁能帮我解释一下?

[复制链接]
 楼主| ruiwei0201 发表于 2008-1-14 16:57 | 显示全部楼层 |阅读模式
我遇到了下面的问题:
ulong address1,address2;
myFunc1(ulong,uchar xdata*,uchar);
myFunc2(void)
{
    ulong address1,address2;
    uchar xdata *bpSrc;
    uchar i;
    myFunc1(address1-address2,bpSrc,i)//这种方式参数1传进去的值不正确
    //下面的调用就可以正常运行
    address1 -= address2;
    myFunc1(address1,bpSrc,i);
}
哪位高手可以说一下为什么吗?多谢了.
dai_weis 发表于 2008-1-14 17:14 | 显示全部楼层

看一下汇编结果

martial 发表于 2008-1-14 17:30 | 显示全部楼层

记得有位大虾曾说过:

最好不要在函数参数中有表达式,好像说系统将它优化了,实现不了想要的功能
happystar 发表于 2008-1-14 17:45 | 显示全部楼层

括起来试试

myFunc1((address1-address2),bpSrc,i)
我也没这么做过,你可以试试看怎么样呢
 楼主| ruiwei0201 发表于 2008-1-14 18:01 | 显示全部楼层

多谢回复

我括起来了,结果是一样的.正在研究中......
lml198694 发表于 2008-1-14 19:40 | 显示全部楼层

应该是函数参数中不能有表达式吧?

应该是函数参数中不能有表达式吧?
 楼主| ruiwei0201 发表于 2008-1-15 09:40 | 显示全部楼层

lmll198694

之前用的都是有表达式的参数没有问题的.只不过这是个long型数据而已.
 楼主| ruiwei0201 发表于 2008-1-15 10:50 | 显示全部楼层

问题解决,多谢关注

原来是address2的问题
 楼主| ruiwei0201 发表于 2008-1-15 12:56 | 显示全部楼层

特别感谢dai_weis

由于你的提醒,我仔细的分析了汇编代码,问题才得以解决.
martial 发表于 2008-1-15 17:55 | 显示全部楼层

“原来是address2的问题”具体是什么问题??

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

本版积分规则

28

主题

149

帖子

0

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

28

主题

149

帖子

0

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