2017-10-26 14 views
1

私は2015のVisual Studioから「stdint.h」ファイルを開いて、下の画像のように、私はINT_FAST16_MAXINT32_MAXに定義されて気づきました。そして、同じことも署名なしで。それはなぜそうですか?なぜINT_FAST16_MAXがINT32_MAX(VS 2015)として定義されていますか?

enter image description here

しかし、予想通り以上のものが定義されています。 (下)

#define INT_LEAST16_MAX INT16_MAX 
#define UINT_LEAST16_MAX UINT16_MAX 
+6

int_fast16_tはint32_tと同じなので? – immibis

+0

サイズは実装 - #defineされているので。 – PSkocik

+0

なぜですか?このプラットフォームでは 'int32_fast_t'は' int32_t'と同じように起こります。それには何も問題ありません。 – AnT

答えて

6

INT_FAST16_MAXint_fast16_t変数に格納することができる最大値です。

int_fast16_tは、のサイズが、少なくともの16ビットの最速整数であることが保証されています。

MSVCは、16ビットよりもアクセスが高速な32ビット汎用レジスタを持つマシンをターゲットにしているため、int_fast16_tは実際には32ビット整数です。したがって、INT_FAST16_MAXINT32_MAXです。

も参照してください:

関連する問題