独闷闷网

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

作者: jianhong_wu    时间: 2014-12-2 10:47
标题: 一道题告诉你C语言中常量的数据0x7f被C编译器默认为int型而不是char型。
风雪-重庆:
同样类型,同样计算,同样编译器怎么就不一样了?



鸿哥-深圳:
C语言中常量的数据0x7f被C编译器默认为int型而不是char型。这个编译器的int应该是16位,此时0x7f应该相当于0x007f,而char是8位的,所以在取反后移位的过程中计算结果必然不一样的。

作者: 101MHz    时间: 2014-12-2 13:59
那遇到这个问题应该肿么解决呢?
作者: jianhong_wu    时间: 2014-12-2 14:35
101MHz 发表于 2014-12-2 13:59
那遇到这个问题应该肿么解决呢?

这个题目本来就不是问题。只是告诉我们一个C语言的常识而已。会了这个常识,就可以避免以后做项目出现的一些bug。




欢迎光临 独闷闷网 (http://dumenmen.com/) Powered by Discuz! X3.2