Avatar ·

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上却不同?如果大小不同,如何编写可移植的代码?