The VS documentation states
Half the size of a pointer. Use within a structure that contains a pointer and two small fields.
Windows Data Types
What, exactly, is this type and how is it used, if ever?
Note: Anonymous structs are not standard, but MSVC takes them:
union
{
int * aPointer
struct
{
HALF_PTR lowerBits;
HALF_PTR upperBits;
};
} myvar; //You can be assured this union is sizeof(int *)
If you're thinking they're not too terribly useful, you would be right.
I found this article on Intel's site, and it they suggest using it in a context where you have a class with many pointer members, along with a 32-bit offset to get the actual address, to cut down on data bloat of a class. The article specifically talks about the Itanium platform because it uses 64-bit pointers instead of 32-bit, but I assume the problem/solution to the problem would be the same on any system using 64-bit pointers.
So in short, it seems to suggest that it can be used if you, for example, wish to reduce the memory footprint of a class?
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