long和int
来源:互联网 发布:服务器对应默认端口 编辑:程序博客网 时间:2024/06/05 23:59
short与long两个限定符的引入可以为我们提供满足实际需要的不同长度的整形数。int通常代表特定机器中证书的自然长度。short类型通常为16位,long类型通常为32位,int类型可以为16位或32位。各编译器可以根据硬件特性自主选择合适的类型长度,但要遵循下列限制:short与int类型至少为16位,long类型至少为32位,并且short类型不得长于int类型,而int类型不得长于long类型。
下面一段话选自《C++Primer》:
short、int和long类型都表示整型值,存储空间的大小不同。一般,short类型为半个机器字长(word)长,int类型为一个机器字长,而long类型为一个或两个机器字长(在32位机器中int类型和long类型通常字长是相同的)。
这时候我又想到了,不同的机器位下,这三个类型到底有什么区别,short就不说了,从上面两段介绍来说,short应该都是16位了,那么int和long呢?
从表中可以看出这么几个问题,int类型在64位系统下竟然是4个字节32位的。还有,这些玩意儿到底跟什么有关系?是谁在控制着?从网上扒了各种解释,大概有这么两点:
1、64位系统下,编译器为了向前兼容,将int类型自动编译为4个字节的了;
2、这些个玩意儿就是编译器来控制的,不同的编译器将int类型编译成不同长度的,所以,使用什么编译器才是重要的,比如:32位系统,tc下的int就是16位长度的,VC就是32位长度的。
3、long long是标准的8 bytes,不受编译器限制,所以,16位的依然也是8 bytes。(多谢博友0_0i_i 的指正)
通过上面的介绍,应该大致明白整型的定义了吧,所以我们在使用整型变量的时候还是得小心的,尤其需要其所占空间长度的时候,千万不要想当然的认为int在32位系统下就是4个字节。尽量使用sizeof取值。
- 整形short、int、long和long long
- int、long和long long的区别
- int、long和long long的范围
- int和long区别
- long 和 int
- int和Long互转
- long和int
- long和int
- long long和int的比较
- printf中的short int, int, long int和long long int
- int和long的区别
- long和int的区别
- long和int的区别
- long 和 int 的区别
- long和int的区别
- int, long, long long的范围和使用
- int,long long int的范围和来源
- int ,long ,long long
- 标准通用标记语言(SGML)
- JavaScript闭包
- LabVIEW生成任意波形
- 如何将 ASP.Net Web API 在 IIS 服务器上托管
- 如何安装Linux系统
- long和int
- win32学习05.父子窗口和缓冲区
- map使用方法 (STL)
- 消息中间件 AMQP协议 核心概念及原理
- 2017 东华校赛
- 反射获取构造方法并使用
- book_effective Python_59个有效办法(一)
- 双向dfs求强连通分量
- Microsoft – WCF/OData – Deploying Services to IIS