fields.c (676B)
1 struct foo { 2 int a; 3 char b; 4 int x : 12, y : 4, : 0, : 4, z : 3; 5 char c; 6 } x = { 1, 2, 3, 4, 5, 6 }; 7 int i = 16; 8 struct baz { unsigned int a:2, b:4, c:32;} y = { 7, 8, 9}; 9 10 main() 11 { 12 printf("x = %d %d %d %d %d %d\n", x.a, x.b, x.x, x.y, x.z, x.c); 13 printf("y = %d %d %d\n", y.a, y.b, y.c); 14 x.y = i; 15 x.z = 070; 16 printf("x = %d %d %d %d %d %d\n", x.a, x.b, x.x, x.y, x.z, x.c); 17 y.a = 2; 18 y.c = i; 19 printf("y = %d %d %d\n", y.a, y.b, y.c); 20 f2(&x); 21 return 0; 22 } 23 24 f1(struct baz *p) { 25 p->a = p->b = 0; 26 if (p->b) 27 printf("p->b != 0!\n"); 28 p->a = 0x3; p->b = 0xf; 29 printf("p->a = 0x%x, p->b = 0x%x\n", p->a, p->b); 30 } 31 f2(struct baz *p) { 32 p->a = (i==0); 33 p->b = (f1(p),0); 34 }