【发布时间】:2020-02-10 20:46:35
【问题描述】:
据我了解,int 使用的字节数取决于系统。通常,int 使用 2 或 4 个字节。
根据 Microsoft's documentation、__int8、__int16、__int32 和 __int64 是 Microsoft 特定关键字。此外,__int16 使用 16 位(即 2 个字节)。
问题:使用__int16(或int16_t)有什么优势/劣势?例如,如果我确定我的整数变量的值永远不需要超过 16 位,那么将变量声明为 __int16 var(或 int16_t var)是否有益?
更新:我看到几个 cmets/answers 建议使用 int16_t 而不是 __int16,这是一个很好的建议,但并不是使用 __int16 的真正优势/劣势。 基本上,我的问题是,使用 16 位版本的整数而不是 int 节省 2 个字节的优点/缺点是什么?
【问题讨论】:
-
缺点:这是微软特有的。请改用C++11's fixed ranged integers。
-
如果不花钱的话,总是更喜欢跨平台解决方案而不是单平台解决方案。
-
@nada:这是明显的劣势。抱歉,如果我确定该程序将在 Windows 机器上运行,我忘了提及。更新了我的问题。
-
使用较小的类型可能是有益的,它也可能导致完全相反的结果。必要时进行基准测试。
-
@skm 可移植性仍然是一个问题,即使目标是 Windows。如果有人想用 MinGW 编译怎么办?
标签: c++ visual-studio windows-10