char 是有符号的
unsigned char 是无符号的,里面全是正数
1.两者都作为字符用的话是没有区别的,
2.但当整数用时有区别:
char 整数范围为-128到127( 0x80__0x7F),
而unsigned char 整数范围为0到255( 0__0xFF )
例如:如下分支语句的条件是永远不会成立的。把char改为unsigned char即可
错误的分支语句:
if((char)*lp>0x80)
{
wsprintf(szBuf,"%c%c ",*lp);
}
else
{
wsprintf(szBuf,"%c ",*lp);
}
正确的分支语句:
if((unsigned char)*lp>0x80)
{
wsprintf(szBuf,"%c%c ",*lp);
}
else
{
wsprintf(szBuf,"%c ",*lp);
}