为什么INT_FAST16_MAX被定义为INT32_MAX(VS 2015)?

Pav*_*aka 1 c c++ visual-c++

我从visual studio 2015打开了"stdint.h"文件,如下图所示,我注意到它被定义为.和无符号一样.为什么会这样?INT_FAST16_MAXINT32_MAX

在此输入图像描述

但最少的是按预期定义的.(下面)

#define INT_LEAST16_MAX  INT16_MAX
#define UINT_LEAST16_MAX UINT16_MAX
Run Code Online (Sandbox Code Playgroud)

Jon*_*art 6

INT_FAST16_MAX是可以存储在int_fast16_t变量中的最大值.

int_fast16_t保证是最快的int,大小至少为 16位.

因为MSVC的目标是具有32位通用寄存器的机器,这些寄存器的访问速度比16位快,int_fast16_t实际上是32位整数.因此,INT_FAST16_MAXINT32_MAX.

也可以看看: