1
xupefei 2012-04-30 22:47:17 +08:00 1
一般来说不会有什么问题,不过当你尝试把其中一个字符当做数值来比较时,char可能会出现负数
另外,根据编译器的不同,char可能被解释为 signed 或 unsigned ,那么当被解释为前者时,你的字符串就出现负数,就出问题了…… |
2
xupefei 2012-04-30 22:49:24 +08:00
这个问题给忘了:
> 什么时候应该用 unsigned char * ? 如果你是在定义字符串,任何时候都应该表明 unsigned |
3
ototsuyume 2012-04-30 22:51:25 +08:00 1
什么时候应该用 unsigned char * ?
二进制数据流 对于一字符串来说 char * 不是更好吗? 是 是不是 unsigned char * 表示的不一定是字符串? 是 强制转换 unsigned char * 和 char * 会不会带来什么隐患? 一般来说不会,但还是尽量别这样干,难免会有例外情况 |
4
simy 2012-04-30 23:45:53 +08:00
unsigned char我还用来当整数用的。。好吧,忽略我。。
|
5
Hyperion 2012-05-01 00:46:38 +08:00 1
都一样用就是了, 但是...
char test[] = {177, 161, '\0'}; printf("%s %d%d", test, (int)test[0], (int)test[1]); unsigned char test[] = {177, 161, '\0'}; printf("%s %d%d", test, (int)test[0], (int)test[1]); -_- 不做解释... |
6
xuefei2062 2012-05-01 01:02:01 +08:00
char有可能是unsigned char,也有可能是signed char,根据系统实现而不同,所以要移植性还是加unsigned或者signed,至于用什么,看你需求
|
7
donbe OP v2ex很给力啊,得到这么多回答, 基本明白了。
|