No.86772 作者:chenjianli 邮件:yurencjl@126.com ID:44314 登陆:1次 文章数:1篇 最后登陆IP:60.180.0.161 最后登陆:2005/12/28 7:58:25 注册:2005/12/11 9:11:07 财富:110 发帖时间:2005/12/11 9:31:40 发贴者IP:60.180.0.238 标题:chenjianli:一个c51编译问题 摘要:No.86772一个c51编译问题 我发现一个问题,不知道是我不对,还是c51的bug问题。见下图,其中d的声明是: char bdata d; sbit d7=d^7; 我要求返回的是d的值,可是不管是实际,还是从编译函数中看,返回的d值中的第7位(就是d7=1:)丢掉了。本来返回的是1;现在却返回的是0。c51为什么会这么编译呢?具体问题出在倒数第二行返回值处:MOV R7,A 这个A是在SETB d7之前的,不包含已经变化了的d7=1这一内容啊。 该怎么解决,凡是用到位变量的,c51都不能够返回正确值。
此主题相关图片如下:
......
>>返回讨论的主题
|