|  | typedef char padding[16]; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | char v; | 
|  | padding p2; | 
|  | } padding_char; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | short v; | 
|  | padding p2; | 
|  | } padding_short; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | int v; | 
|  | padding p2; | 
|  | } padding_int; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | long v; | 
|  | padding p2; | 
|  | } padding_long; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | long long v; | 
|  | padding p2; | 
|  | } padding_long_long; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | float v; | 
|  | padding p2; | 
|  | } padding_float; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | double v; | 
|  | padding p2; | 
|  | } padding_double; | 
|  |  | 
|  | struct { | 
|  | padding p1; | 
|  | long double v; | 
|  | padding p2; | 
|  | } padding_long_double; | 
|  |  | 
|  | static void | 
|  | fill (void *buf, long sizeof_buf) | 
|  | { | 
|  | char *p = (char *) buf; | 
|  | int i; | 
|  | for (i = 0; i < sizeof_buf; i++) | 
|  | p[i] = "The quick brown dingo jumped over the layzy dog."[i]; | 
|  | } | 
|  |  | 
|  | void | 
|  | fill_structs (void) | 
|  | { | 
|  | fill (&padding_char.p1, sizeof (padding)); | 
|  | fill (&padding_char.v, sizeof (padding_char.v)); | 
|  | fill (&padding_char.p2, sizeof (padding)); | 
|  |  | 
|  | fill (&padding_short.p1, sizeof (padding)); | 
|  | fill (&padding_short.v, sizeof (padding_short.v)); | 
|  | fill (&padding_short.p2, sizeof (padding)); | 
|  |  | 
|  | fill (&padding_int.p1, sizeof (padding)); | 
|  | fill (&padding_int.v, sizeof (padding_int.v)); | 
|  | fill (&padding_int.p2, sizeof (padding)); | 
|  |  | 
|  | fill (&padding_long.p1, sizeof (padding)); | 
|  | fill (&padding_long.v, sizeof (padding_long.v)); | 
|  | fill (&padding_long.p2, sizeof (padding)); | 
|  |  | 
|  | fill (&padding_long_long.p1, sizeof (padding)); | 
|  | fill (&padding_long_long.v, sizeof (padding_long_long.v)); | 
|  | fill (&padding_long_long.p2, sizeof (padding)); | 
|  |  | 
|  | fill (&padding_float.p1, sizeof (padding)); | 
|  | fill (&padding_float.v, sizeof (padding_float.v)); | 
|  | fill (&padding_float.p2, sizeof (padding)); | 
|  |  | 
|  | fill (&padding_double.p1, sizeof (padding)); | 
|  | fill (&padding_double.v, sizeof (padding_double.v)); | 
|  | fill (&padding_double.p2, sizeof (padding)); | 
|  |  | 
|  | fill (&padding_long_double.p1, sizeof (padding)); | 
|  | fill (&padding_long_double.v, sizeof (padding_long_double.v)); | 
|  | fill (&padding_long_double.p2, sizeof (padding)); | 
|  | } | 
|  |  | 
|  | int | 
|  | main () | 
|  | { | 
|  | int size, value; | 
|  |  | 
|  | fill_structs (); | 
|  |  | 
|  | size = (int) sizeof (char); | 
|  | size = (int) sizeof (short); | 
|  | size = (int) sizeof (int); | 
|  | size = (int) sizeof (long); | 
|  | size = (int) sizeof (long long); | 
|  | size = (int) sizeof (void*); | 
|  | size = (int) sizeof (void (*)(void)); | 
|  | size = (int) sizeof (float); | 
|  | size = (int) sizeof (double); | 
|  | size = (int) sizeof (long double); | 
|  |  | 
|  | /* Signed char?  */ | 
|  | value = '\377'; | 
|  | value = (int) (char) -1; | 
|  | value = (int) (signed char) -1; | 
|  | value = (int) (unsigned char) -1; | 
|  |  | 
|  | return 0; | 
|  | } |