Windows和Linux下的不同类型的大小
- Windows
- Linux
- 指针
- 其他
- Win64
- Win32
- Linux64
之前在书上看到long的大小是4字节,但在Linux下测了一下是8个字节,今天就完整地整理了一下Linux和Windows下不同类型的大小:
Windows
不管是32位还是64位的Windows这几中常见类型的大小都是一样的:
size of int 4
size of long 4
size of short 2
size of long long 8
size of float 4
size of double 8
size of char 1
size of empty class 1
Linux
64位的Linux这几中常见类型的大小:
size of int 4
size of long 8
size of short 2
size of long long 8
size of float 4
size of double 8
size of char 1
size of empty class 1
在64位Linux和Windows下只有long的大小是不同的,64位Linux下long的大小为8字节,和long long一样,Windows下为4字节和int一样。但是在32位Linux下long的大小也仅有4字节。
这里还要注意的一点是,空类的大小不是0而是1字节,因为不允许对象的大小为0,不同的对象必须要有不同的地址空间。
指针
但是指针和以上的类型是不一样的,指针的大小是固定的不管指向哪一种类型,他不管在Linux还是Windows下大小都是一样的,仅在32位机器和64位机器上不同,在32位机器上为4 byte, 而64位机器上是8 byte。
其他
Win64
size of vector 32
size of set 24
size of pair 8
size of map 24
size of queue 40
size of string 40
Win32
size of vector 16
size of set 12
size of pair 8
size of map 12
size of queue 20
size of string 28
Linux64
size of vector 24
size of set 48
size of pair 8
size of map 48
size of queue 80
size of string 32
有看到面经考到vector和pointer的大小,可以记一下vector在Win 64下32,Win 32是16,Linux是24;pointer在32和64位机器内分别是4和8。
关于各类型大小的总结到此为止。
更多推荐
Windows和Linux下的不同类型的大小
发布评论