请帮助我理解这个表达方式:
(dwStreamSizeMax >> 32i64)
我之前从未见过像32i64这样的操作数。谢谢。
答案 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仅为ULL
和unsigned long long
类型(及其long
对应类型)提供后缀,后者保证为64位或更多。< / em>的