c++ 中关于int,unsigned int , short的关系与应用

参考:https://www.cnblogs.com/132460/p/3410332.html

int类型比较特殊,具体的字节数同机器字长和编译器有关。如果要保证移植性,尽量用__int16 __int32 __int64。__int16、__int32这种数据类型在所有平台下都分配相同的字节。所以在移植上不存在问题。
不可移植指:在一个平台上编写的代码无法拿到另一个平台上运行时,不能达到期望的运行结果。
例如:在32为平台上(所谓32位平台是指通用寄存器的数据宽度是32)编写代码,int 类型分配4个字节,而在16位平台是则分配2个字节,那么在16位上编译出来的exe,其中是为int分配2字节,而在32位平台上运行时,会按照4个字节来解析,显然会出错误的!而对于非int行,目前为止,所有的类型分配的字节数都是兼容的,即不同平台对于同一个类型分配相同的字节数!
64位指的是cpu通用寄存器的数据宽度是64位的。
建议:在代码中尽量避免使用int类型,根据不同的需要可以用short,long,unsigned int 等代替。

下面是各个类型一览表
c++ 中关于int,unsigned int , short的关系与应用_第1张图片
c++ 中关于int,unsigned int , short的关系与应用_第2张图片

你可能感兴趣的:(c++,c++)