C/C++标准只规定了int
类型至少占16位,long
类型至少占32位,long long
类型至少占64位。
至于这些类型具体占多少位是由操作系统的Data Model决定的。比如64位Windows系统采用LLP64 Data Model(即int
和long
都是32位),而64位Linux系统则采用LP64 Data Model(即int
是32位,long
是64位)
https://en.cppreference.com/w/cpp/language/types#Data_models
long和int等价,long long才是8字节
c++里面int比较尴尬
它不像c#里,short=2byte,int=4byte,long=8byte
在32位机器里,int=short=2byte
在64位机器里,int=long=4byte