jianhong_wu 发表于 2014-12-2 10:47:31

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

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



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

101MHz 发表于 2014-12-2 13:59:20

那遇到这个问题应该肿么解决呢?

jianhong_wu 发表于 2014-12-2 14:35:40

101MHz 发表于 2014-12-2 13:59
那遇到这个问题应该肿么解决呢?

这个题目本来就不是问题。只是告诉我们一个C语言的常识而已。会了这个常识,就可以避免以后做项目出现的一些bug。
页: [1]
查看完整版本: 一道题告诉你C语言中常量的数据0x7f被C编译器默认为int型而不是char型。