1 typedef struct 2 { 3 unsigned char a __attribute__ ((packed)); 4 unsigned short b __attribute__ ((packed)); 5 } three_byte_t; 6 7 unsigned char f(void)8f (void) 9 { 10 return 0xab; 11 } 12 13 unsigned short g(void)14g (void) 15 { 16 return 0x1234; 17 } 18 main()19main () 20 { 21 three_byte_t three_byte; 22 23 three_byte.a = f (); 24 three_byte.b = g (); 25 if (three_byte.a != 0xab || three_byte.b != 0x1234) 26 abort (); 27 exit (0); 28 } 29 30