对char 的理解???

catamout 2008-09-19 09:23:15
在《c和指针》中 的这句话怎么理解“只有char型变量显示声明为signed 或者unsinged 时才对它执行算数运算”?
...全文
192 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Soulic 2008-09-19
  • 打赏
  • 举报
回复
将字符变量申明为signed char或者unsinged char时,才可以对其进行像加、减等的运算,一般来说,char申明的是signed char型,所以基本上都可以进行算术运算
lsldd 2008-09-19
  • 打赏
  • 举报
回复
都是8bit
singed char 的range(-128, 127)
unsigned char的range为(0, 255)
既然都是整数,当然能执行算术运算
独孤过儿 2008-09-19
  • 打赏
  • 举报
回复
因为标准中没有显示的规定char属于unsigned还是signed,所以这个完全是依赖于编译器的实现!
hyyuanqiang 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 djwinter 的回复:]
引用 4 楼 wwlyqin 的回复:
理论上讲,对char类型进行算术操作,必须指定signed char或者unsinged char,因为,不同编译器对char有不同的默认定义规则,直接使用有可能产生误解,特别是在底层或者嵌入式编程中。


在嵌入式编程中,最保险的方法是不用char,用uint8_t之类,因为char的大小都不一定是1byte
[/Quote]
还行。。。。。。。。。。。。。。。。。。。。。。。。。。。。
djwinter 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwlyqin 的回复:]
理论上讲,对char类型进行算术操作,必须指定signed char或者unsinged char,因为,不同编译器对char有不同的默认定义规则,直接使用有可能产生误解,特别是在底层或者嵌入式编程中。
[/Quote]

在嵌入式编程中,最保险的方法是不用char,用uint8_t之类,因为char的大小都不一定是1byte
hedoudou 2008-09-19
  • 打赏
  • 举报
回复
看编译器拉,一般默认的都是signed 的
dsoyy 2008-09-19
  • 打赏
  • 举报
回复
缺省的char要么是signed char 要么是unsinged char,这取决于编译器。
WillWang 2008-09-19
  • 打赏
  • 举报
回复
理论上讲,对char类型进行算术操作,必须指定signed char或者unsinged char,因为,不同编译器对char有不同的默认定义规则,直接使用有可能产生误解,特别是在底层或者嵌入式编程中。
Darkneece 2008-09-19
  • 打赏
  • 举报
回复
从来没碰到过这种情况,不显示声明照计算不误

作者的编译器太老?

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧