为啥我的long型是占4个字节?
课件里说long型可以存放int的数据,但int型不一定能存放long型的数据,那说明long型所占的内存空间应该int型大才是啊,可是为啥我的long和int占字节数都一样? int 和 long一样,long long 才比 int 大 tommyyu 发表于 2022-8-7 17:45
int 和 long一样,long long 才比 int 大
既然都一样,那为啥int和long运算时,int要转换成long,它们不是都占4个字节么,有什么区别吗? 竹逸 发表于 2022-8-7 17:54
既然都一样,那为啥int和long运算时,int要转换成long,它们不是都占4个字节么,有什么区别吗?
int和long的区别 对于 64 位 Windos 系统 C / C++ 编译器而言,int 和 long 是一样的;对于 64 位 Linux 系统而言,int 占用 4 字节,long 占用 8 字节。 去看 C 语言标准就会发现,标准要求 long 和 unsigned long 至少为 32 位宽,而 int 和 unsigned int 至少为 16 位宽。至于具体实现为多宽是实现的自由。
(来自 5.2.4.2.1 Characteristics of integer types <limits.h> ) 32位linux: int 4,long 4,long long 8
64位linux: int 4,long 8,long long 8
Windows:int 4,long 4,long long 8
C语言标准并没有定死long类型的占用字节数,所以不同平台编译器上long的占用字节数有可能是不同的 hrpzcf 发表于 2022-8-7 18:41
32位linux: int 4,long 4,long long 8
64位linux: int 4,long 8,long long 8
Windows:int 4,long ...
好的,谢谢,我以为是我的编译器出问题了{:10_266:} jackz007 发表于 2022-8-7 18:25
对于 64 位 Windos 系统 C / C++ 编译器而言,int 和 long 是一样的;对于 64 位 Linux 系统而言 ...
原来是和系统有关{:10_269:}
页:
[1]