I've read the answers to the question of why sizeof(long long)
is 8 on most systems, but I'm still not sure how to interpret the meaning of them.
One of the reasons given is that there is a lot of code 'out there' which assumes that sizeof(long long) <= sizeof(size_t)
. That makes sense. Then there are all kinds of views on architecture conventions and brands, etc. I don't even want to get into those debates about the history of the convention. There are also reasons given that long long
can be any size according to standard, but I think that is not really what concerns me.
What I want to know is how to interpret the difference now between the fact that sizeof(long long)
returns 8 but that a long long
actually is 16. Should it be interpreted as a historical remnant that applies only to the sizeof
operator, or is there an underlying address pointer associated with that fact, so that operations on a long long
are executed in 8 byte increments?
Sizeof (signed) long v4: 8 Value of (x at 2147483647)v4: 7fffffff
Sizeof long long v5: 8 Value of (x at 9223372036854775807)v5: 7fffffffffffffff