char, signed char,unsigned char, short int unsigned short int, int数据类型取值问题

  char, signed char,unsigned char, short int unsigned short int, int 这些数据类型是大家平时工作中一定会用到的,今天不知咋回事,看到这些数据类型时突然产生了一个疑问:数据类型要么是有符号的,要么是无符号,为什么每种数据类型会多一个缺省的呢?查找资料说是为了移植方便。怎么个方便法呢?看如下取值类型:

 

类型                    最小范围
char                   0 ~ 127
signed char        -127 ~ 127
unsigned char    0 ~ 255

 

  从以上取值范围你是否发现了什么? 默认的char的取值范围刚好是signed char和 unsigned char的交集,这便是方便之处了,倘若你定义的类型是char,无论移植的机器char 的取值范围是 -127 ~ 127还是 0 ~ 255,你使用 0 ~ 127都是绝对没问题的。至于显示的定义为有符号,或无符的,主要是为了性能问题。

  从这里我们可以看得出语言设计者的精妙之处。跨平台性,效率性,我们的编码是否有全盘的考虑过这些呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值