SproutME 发表于 2015-8-15 22:37:53

关于有符号和无符号传参问题

这个是简化的源码,本来是为了将GB2312的机内码转换成字模的。

void add(char *out) {
unsigned char a = *out - 0xa0;
}

我们知道对于中文字符来说,最高位都是1表示非ASCII码,unsigned char a = *out - 0xa0; 本意是一个正数减一个正数,得到正数。可是结果却是错的呢;

Super169 发表于 2015-8-16 00:51:12

你的原意想做什麼, 結果是什麼都不說.....

本意是一个正数减一个正数,得到正数。可是结果却是错的呢; - 難道你的unsigned char a 會是負數嗎?
页: [1]
查看完整版本: 关于有符号和无符号传参问题