Specifies the alignment rules to use for members
of structures, unions, and classes in the source code. PACKSTRUCT
sets the packing value to be used for the members of structures and
for the structures themselves.
If the data types are by default packed along boundaries
smaller than those boundaries specified by #pragma pack, they are
still aligned along the smaller boundaries. For example:
Type char is always aligned along a 1-byte boundary.
16-byte pointers are aligned on a 16-byte boundary. PACKSTRUCT,
_Packed, and #pragma pack cannot alter this alignment.
8-byte pointers can have any alignment, but 8-byte alignment is
preferred.
For more information about packing and alignment, see pragma pack.