首页 > 解决方案 > 在 int 上使用 __int16(或 int16_t)的优点/缺点

问题描述

据我了解,用于的字节数int取决于系统。通常,2 或 4 个字节用于int.

根据Microsoft的文档,、、__int8是Microsoft 特定的关键字。此外,使用 16 位(即 2 个字节)。__int16__int32__int64__int16

问题:__int16使用(或)的优点/缺点是int16_t什么?例如,如果我确定我的整数变量的值永远不需要超过 16 位,那么将变量声明为__int16 var(或int16_t var)是否有益?

更新:我看到一些评论/答案建议使用int16_t而不是__int16,这是一个很好的建议,但并不是使用的真正优势/劣势__int16基本上,我的问题是,使用 16 位版本的整数而不是节省 2 个字节的优点/缺点是什么 int

标签: c++visual-studiowindows-10

解决方案


节省 2 个字节几乎是不值得的。但是,节省数千字节是。如果你有一个包含整数的大数组,使用小整数类型可以节省相当多的内存。这会导致代码更快,因为使用的内存越少,接收到的缓存未命中就越少(缓存未命中是性能的主要损失)。

TL;DR:这在大型数组中是有益的,但对于 1-off 变量毫无意义。

这些的第二个用途是用于处理二进制文件和消息。如果您正在读取使用 16 位整数的二进制文件,那么如果您可以在代码中准确地表示该类型,那将非常方便。

顺便说一句,不要使用微软的版本。使用标准版本 ( std::int16_t)


推荐阅读