There really is no need for that. Unsigned char's will be placed on 8-bit boundaries on all common systems, and doubles will be placed on 64-bit boundaries. The union will be sized and oriented based on the largest size requirement (the double), so packing it serves no purpose.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week Zac