像32i64这样的操作数是什么意思?

时间:2014-04-03 06:11:13

标签: c++ visual-c++ 32bit-64bit

请帮助我理解这个表达方式:

(dwStreamSizeMax >> 32i64)

我之前从未见过像32i64这样的操作数。谢谢。

2 个答案:

答案 0 :(得分:6)

来自MSDN C++ Integer Constants

  

64位整数后缀:i64 LL ll

也就是说,32i64将是64位大小的整数类型常量,其值为32。也就是说,它是(__int64) 32(int64_t) 32

  

dwStreamSizeMax >> 32i64

请注意,在引用的表达式中,即使对于64位dwStreamSizeMax,有意义的最大移位位数也是63,它适合8位值(BYTE),因此64位大小说明符有多余的。

答案 1 :(得分:0)

它是64位整数文字的后缀,与L的{​​{1}}或long的{​​{1}}不同。但是,我认为它是微软主义而不是可移植的C ++。

C ++ 11仅为ULLunsigned long long类型(及其long对应类型)提供后缀,后者保证为64位或更多。< / em>的