独闷闷网

 找回密码
 立即注册
搜索
查看: 4113|回复: 2
打印 上一主题 下一主题
收起左侧

[原创] 一道题告诉你C语言中常量的数据0x7f被C编译器默认为int型而不是char型。

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-2 10:47:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
风雪-重庆:
同样类型,同样计算,同样编译器怎么就不一样了?



鸿哥-深圳:
C语言中常量的数据0x7f被C编译器默认为int型而不是char型。这个编译器的int应该是16位,此时0x7f应该相当于0x007f,而char是8位的,所以在取反后移位的过程中计算结果必然不一样的。
乐于分享,勇于质疑!
沙发
发表于 2014-12-2 13:59:20 | 只看该作者
那遇到这个问题应该肿么解决呢?
乐于分享,勇于质疑!
板凳
 楼主| 发表于 2014-12-2 14:35:40 | 只看该作者
101MHz 发表于 2014-12-2 13:59
那遇到这个问题应该肿么解决呢?

这个题目本来就不是问题。只是告诉我们一个C语言的常识而已。会了这个常识,就可以避免以后做项目出现的一些bug。
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-11-29 20:54 , Processed in 0.187039 second(s), 20 queries .

快速回复 返回顶部 返回列表