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