很简单的东西不明白,各位进来看看
用的ICCAVR编译器,mega8,简化后的程序如下:#include <iom8v.h>
char data;
void main(void)
{data=OxD3;
if(data|0x01==0)
语句1;
}
data是全局变量,0xD3化为二进制是0b11010011,0x01的二进制是0b00000001,二者按位或的结果应该是0b11010011,因此(data|0x01==0)为假,语句1不应当被执行;但实际结果却是语句1被执行,为什么会这样,百撕不得骑姐啊!在线等,望回答!先谢了! if((data|0x01)==0)
如果这样的话,肯定会按你的意思去执行。
不要吝啬你的括号。 对,优先级的问题
http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_693547IJNZ2F.jpg
(原文件名:优先级.jpg) 非常感谢你们的回答,的确是这样的。 你发过的主题全是请教的,你还说这里冷清。 xiaowu191 发表于 2011-11-9 18:28 static/image/common/back.gif
对,优先级的问题
必须要顶!+1
页:
[1]