long long
is not the same as long
(although they can have the same size, e.g. in most 64-bit POSIX system). It is just guaranteed that a long long
is at least as long as a long
. In most platforms, a long long
represents a 64-bit signed integer type.
You could use long long
to store the 8-byte value safely in most conventional platforms, but it’s better to use int64_t
/int_least64_t
from <stdint.h>
/<cstdint>
to clarify that you want an integer type having ≥64-bit.