Please help me understand this expression:
(dwStreamSizeMax >> 32i64)
I've never seen operands like 32i64 before. Thank you.
From MSDN C++ Integer Constants:
64-bit integer-suffix: i64 LL ll
That is, 32i64 would be 64-bit sized constant of integer type, of value of 32. That is, it is (__int64) 32, or (int64_t) 32.
dwStreamSizeMax >> 32i64
Note that in the quoted expression even for 64-bit dwStreamSizeMax maximal shift bit count which makes sense is 63, which fits into 8-bit value (BYTE), hence 64-bit size specifier there is redundant.
It's the suffix for a 64-bit integer literal, not unlike L for a long or ULL for an unsigned long long. However, I believe it's a Microsoft-ism and not portable C++.
C++11 only provides suffixes for long and long long types (and their unsigned counterparts), the latter which is guaranteed to be 64 bits or more.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With