0


Windows下 int 和 long 数据类型为什么都占4个字节

Windows下 int 和 long 数据类型为什么都占4个字节

如果你测试过long和int内置类型的大小,当发现都为4字节时,可能都会产生疑问,如果都是4字节,long并没有提供更大的存储范围,那么还要long做什么用?本文如下内容将为你解开这些疑团。

先简要概述以下内置类型的发展,如有疏漏,还请指正。C语言开始时只有char(8位)和int(16位)两种,后来随着发展又加入了short(16位)和long(32位),此时,int可以是16位或者32位,依赖于平台和后续的兼容性。再后来当64位出现时,long long(64位)又被添加进来,为了进行规范,对较小的一些类型的范围就有了一些调整,逐渐稳定为int32位,long可以有多种定义,可以是32位,也可以是64位。

C++标准上只是说

long

至少要和

int

一样大,所有整数类型实现时要满足如下规范:

sizeof(char) == 1

sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

sizeof(long long) == 8

除了

char

long long

,其余的类型范围较灵活,都是平台相关的,与实现相关。如果要实现平台独立的话,在windows平台上,就有

__intn

可以使用,n代表位数。

__int8、__int16、__int32、__int64

  • 编译器数据模型的区别
    Datetype(bit)LP64ILP64LLP64ILP32LP32char88888short1616161616int3264323216long6464323232long long6464646464pointer6464643232
    ​ 一般情况下windows64位一般使用LLP64模型

​ 64位Unix,Linux使用的是LP64模型

标签:

本文转载自: https://blog.csdn.net/weixin_44560698/article/details/119910297
版权归原作者 Jacob-xyb 所有, 如有侵权,请联系我们删除。

“Windows下 int 和 long 数据类型为什么都占4个字节”的评论:

还没有评论