
1 xupefei 2012-04-30 22:47:17 +08:00 一般来说不会有什么问题,不过当你尝试把其中一个字符当做数值来比较时,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 什么时候应该用 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 都一样用就是了, 但是... 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很给力啊,得到这么多回答, 基本明白了。 |