Nice solution. I didn't understood how a "vala struct" could be interpreted as a C union; this example clarifies it well.
Thanks for sharing. -- nadir 2012/7/20 Sebastian Reichel <s...@ring0.de> > > How about defining the union in C and making it available in Vala > with a vapi file? > > == reg.h == > #include <stdint.h> > > typedef struct { > uint8_t lo; > uint8_t hi; > } WORD; > > typedef union { > uint16_t reg16; > WORD reg8; > } REG; > > == reg.vapi == > [CCode (cheader_filename = "reg.h")] > public struct WORD { > uint8 lo; > uint8 hi; > } > > [CCode (cheader_filename = "reg.h")] > public struct REG { > uint16 reg16; > WORD reg8; > } > > == test.vala == > public static int main(string[] args) { > REG register = REG(); > register.reg16 = 0; > register.reg8.lo = 0x23; > register.reg8.hi = 0x42; > stdout.printf("%04x\n", register.reg16); > return 0; > } > > == demo == > $ valac test.vala reg.vapi > $ ./test > 4223 > > -- Sebastian >
_______________________________________________ vala-list mailing list vala-list@gnome.org https://mail.gnome.org/mailman/listinfo/vala-list