为什么Java不包含对无符号整数的支持?
在我看来,这是一个奇怪的遗漏,因为它们允许人们编写不太可能在意外的大输入上产生溢出的代码.
此外,使用无符号整数可以是一种自我文档形式,因为它们表明unsigned int意图保留的值绝不应该是负数.
最后,在某些情况下,无符号整数对于某些操作(例如除法)可能更有效.
包含这些内容的不利之处是什么?
我一直在思考是否应该在内部使用typedef <cstdint>.
我个人比较喜欢写uint32_t了unsigned int和int8_t在char等...因为这对我来说是一个很大更加直观.
你们有什么感想?是否使用typedef是一个好主意 <cstdint>?有什么缺点吗?
在新的Apple Swift文档中,它说:
诠释
在大多数情况下,您不需要选择要在代码中使用的特定大小的整数.Swift提供了一个额外的整数类型Int,它与当前平台的本机字大小相同:
在32位平台上,Int与Int32的大小相同.在64位平台上,Int与Int64的大小相同.除非您需要使用特定大小的整数,否则请始终在代码中使用Int作为整数值.这有助于代码一致性和互操作性.即使在32位平台上,Int也可以存储-2,147,483,648和2,147,483,647之间的任何值,并且对于许多整数范围来说足够大.
我可以理解,当使用用"Int"定义的API时,您应该使用它们.
但对于我自己的代码,我总是严格要求使用stdint标头在C中使用正确的位大小类型.我的想法是我试图减少歧义.然而,Apple的人非常聪明,我想知道我是否遗漏了一些东西,因为这不是他们推荐的.