/* * An assortment of experiments involving structures. */ #include /* typedef struct pair { int x; int y; } pair; typedef struct point { int x; int y; } point; */ typedef struct twoints { int x; int y; } pair, point; typedef struct whatever { int x; char y; } whatever; typedef union zebra { int x; int y; } zebra; typedef union yak { int i; char ch; } yak; typedef union lemur { int i; struct { char b1,b2,b3,b4; } bytes; } lemur; main() { point alpha; pair beta; zebra stripes; yak bison; lemur lex; alpha.x = 1; alpha.y = 2; printf("beta: (%d,%d)\n", beta.x, beta.y); beta = alpha; printf("beta: (%d,%d)\n", beta.x, beta.y); printf("sizeof(whatever) = %d\n", sizeof(whatever)); printf("sizeof(zebra) = %d\n", sizeof(zebra)); printf("sizeof(yak) = %d\n", sizeof(yak)); printf("sizeof(lemur) = %d\n", sizeof(lemur)); bison.i = 10; bison.ch = 'a'; printf("bison.i: %d\n", bison.i); lex.i = 257; printf("%d %d %d %d\n", lex.bytes.b1, lex.bytes.b2, lex.bytes.b3, lex.bytes.b4); exit(0); } /* main() */