A nice post. However I think I should point out that the real data-occupide space is 52 bytes: There are two places that need alignment, the first member ``WORD'' and the third member ``WORD''.
And by the way, both your test and what the referenced article mentioned are only true for 32-bit machines.