你应该在你知道价值不会高于32,767的地方使用Int32吗?
我想保持记忆力,不管怎么说,只是为了执行简单的算法而使用演员阵容变得很烦人。
short a = 1;
short result = a + 1; // Error
short result = (short)(a + 1); // works but looks ugly when does lots of times
对整体应用程序性能有什么好处?
答案 0 :(得分:8)
据我所知,尽可能使用int是一个好习惯。 int的大小等于许多体系结构上的字大小,所以我认为在某些算术运算中使用short时可能会有轻微的性能下降。
答案 1 :(得分:4)
如果要创建大型数组,那么它可以节省大量内存以使用更窄的类型(更少的字节),因为数组的大小将是“类型宽度”*“元素数量”+“开销”
但是,我非常确定默认情况下,在类和结构中,它们将按照整个单词边界打包,例如32位= 4字节。短路仍将打包成4字节的空间。
但是,您可以使用结构布局手动配置structs \ classes中的打包:
与任何与绩效相关的问题:“不要考虑 - 衡量”。
从API的角度来看,必须保持从短路到内部等的转换是非常烦人的,因为你会发现大多数API都会使用整数。例如。
答案 2 :(得分:1)
使用小于int32的整数数据类型的3个理由:
我主要使用普通的Windows应用程序,因此通常对我来说很重要的唯一原因是第3个。
答案 3 :(得分:0)
除非你创造了成千上万的成员,否则在这里和那里节省一些字节的空间在任何现代机器上都无关紧要。我认为过早优化的格言适用于此。它可能会让你感觉更好,但你没有得到任何特别可衡量的东西。 IMO - 只有在你实际使用大量内存时才会优化内存使用。