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\0",*lp);
}
else
{
wsprintf(szBuf,"%c\0",*lp);
}
正確的分支語句:
if((unsigned char)*lp>0x80)
{
wsprintf(szBuf,"%c%c\0",*lp);
}
else
{
wsprintf(szBuf,"%c\0",*lp);
}