C++ int和long之间有什么区别?

C++ int和long之间有什么区别?,c++,C++,可能重复: C++中的P>是int和长数据类型之间的差值。编写了以下代码: int _tmain(int argc, _TCHAR* argv[]) { cout<<"Int_Max = "<<INT_MAX<<endl; cout<<"Int_Min = "<<INT_MIN<<endl; cout<<"Long_Max = "<<LONG_MAX<<endl

可能重复:

C++中的P>是int和长数据类型之间的差值。编写了以下代码:

int _tmain(int argc, _TCHAR* argv[])
{
    cout<<"Int_Max = "<<INT_MAX<<endl;
    cout<<"Int_Min = "<<INT_MIN<<endl;
    cout<<"Long_Max = "<<LONG_MAX<<endl;
    cout<<"Long_Min = "<<LONG_MIN<<endl;
}

我很困惑。

在32位系统上,
int
long
之间通常没有区别。如果要在32位系统上使用64位数据类型,请尝试使用
long

根据标准,
int
保证至少为16位,
long
至少为32位。在大多数32位编译器上,它们都是相同的,都是32位。但是你不应该指望这一点,因为也有64位、16位甚至8位的编译器。

char:至少8位:等于一个单位

短:至少16位:至少与字符一样宽

int:至少16位:至少和短一样宽


long:至少32位:至少与int一样宽如果要保证数据类型的大小,应该使用cstdint中的类型(需要g++中的C++0x支持,这是通过使用-std=C++0x编译打开的)。例如,不使用int或long,而是使用int32\u t和int64\u t。如果需要无符号数据类型,只需在开头添加一个“u”。uint16\u t可能等于平台上的无符号空头。它是一个16位无符号整数

但是,您应该仅在确切的空间很重要的情况下使用这些。否则,“int”通常更可取


有关更完整的参考资料,请参阅其中包含的其他选项,例如至少16位宽的数据类型的int_least16_t等。

看不到boost和游戏编程适合于此?或者游戏编程。之前已回答:对于boost的事,我很抱歉,我想问另一个问题,标签还保留着。我已经编辑过了,很抱歉给您带来不便。标准还保证了字符的大小
Int_Max = 2147483647
Int_Min = -2147483648
Long_Max = 2147483647
Long_Min = -2147483648