1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import "libc.hff";
bitfield Foo : u16 {
tag 3,
flag (3, 1) bool,
num 10 signed,
}
extern fn main() int {
let foo Foo = {};
printf("0x%X: %d, %d, %d\n", foo.#raw, foo.tag, foo.flag, foo.num);
foo.tag = 3;
printf("%d\n", foo.#raw += 1);
--foo.tag;
foo.flag = #t;
foo.num = -2;
foo.num *= 10;
printf("0x%X: %d, %d, %d\n", foo.#raw, foo.tag, foo.flag, foo.num += 532);
}
|