关于有符号和无符号传参问题
这个是简化的源码,本来是为了将GB2312的机内码转换成字模的。void add(char *out) {
unsigned char a = *out - 0xa0;
}
我们知道对于中文字符来说,最高位都是1表示非ASCII码,unsigned char a = *out - 0xa0; 本意是一个正数减一个正数,得到正数。可是结果却是错的呢; 你的原意想做什麼, 結果是什麼都不說.....
本意是一个正数减一个正数,得到正数。可是结果却是错的呢; - 難道你的unsigned char a 會是負數嗎?
页:
[1]