VC6下,BYTE型数据与char型数据的比较问题

代码:
BYTE by = 0xBC;
std:vector<char> ch(2);
ch[0] = 0xBC;

if(ch[0] == by)
{
	printf("Is same.\n");
}
else
{
	printf("Not same.\n");
}
 
运行结果:
Not same.
 
std:vector<char> ch(2);换成std:vector<BYTE> ch(2);
结果为:Is same.
查看了汇编代码:
发现,使用char型时,直接一个movsx指令将容器中的数据装入CX;使用BYTE型时,先将CX清零,再把数据装入CL。
这算是编译器的Bug呢,还是本来就需要注意的问题呢?
有兴趣的兄弟试试,我也想知道结果。

posted on 2008-04-09 20:16 FongLuo 阅读(1989) 评论(1)  编辑 收藏 引用

评论

# re: VC6下,BYTE型数据与char型数据的比较问题 2008-04-10 10:54 阿土仔

逻辑上有问题,char与unsigned char
强转后在比较吧  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

常用链接

留言簿

随笔分类(11)

随笔档案(79)

文章档案(1)

收藏夹(38)

学习网站

一般网站

最新随笔

搜索

积分与排名

最新评论

阅读排行榜