C++标准对int、long和long long类型大小的规定
大家好!我刚开始学习C++,遇到了一些困惑。我知道在不同的编译器和平台上,整数类型的大小可能不同。我写了一段简单的代码在我的机器(Windows,MinGW)上测试:
```cpp
#include
using namespace std;
int main() {
cout << "Size of int: " << sizeof(int) << " bytes" << endl;
cout << "Size of long: " << sizeof(long) << " bytes" << endl;
cout << "Size of long long: " << sizeof(long long) << " bytes" << endl;
return 0;
}
```
在我的电脑上得到的结果是:int = 4字节,long = 4字节,long long = 8字节。但我在网上看到,在Linux x86_64上long可能是8字节。我的朋友说,在旧的16位系统上int是2字节。
我想知道:C++标准到底保证了什么?我能依赖int总是4字节吗?为什么在我的Windows上long和int一样大,但在Linux上却不同?如果大小不同,如何编写可移植的代码?