"a technique for reducing the memory footprint of programs in compiled languages with C-like structures"
I figure that's not the primary reason for structure packing, but rather for fine-grained control over writing to very specific memory layouts (think global descriptor table) as structs.