独闷闷网

 找回密码
 立即注册
搜索
查看: 3861|回复: 2
收起左侧

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

[复制链接]
发表于 2014-12-2 10:47:31 | 显示全部楼层 |阅读模式

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

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

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


鸿哥-深圳:
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-4-19 08:01 , Processed in 0.167834 second(s), 20 queries .

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