Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // gcc -Wall -o union union.c
- #include <inttypes.h>
- #include <stdlib.h>
- #include <stdio.h>
- typedef struct test
- {
- union
- {
- uint8_t reg8bit; // overall register
- struct
- {
- uint8_t bit05:6; // bits 0-5
- uint8_t bit68:3; // bits 6-8 .. ooops, too large
- } regs;
- } REG0;
- union
- {
- uint8_t reg8bit; // overall register
- struct
- {
- uint8_t bit05:6; // bits 0-5
- uint8_t bit68:3; // bits 6-8 .. ooops, too large
- } regs;
- } REG1;
- } test_t;
- int main(void)
- {
- test_t * t = (test_t*)malloc(20);
- printf("sizeof(test_t): %d\n", sizeof(test_t));
- printf("t: 0x%p\n", t);
- printf("reg0: 0x%p\n", &t->REG0);
- printf("reg1: 0x%p\n", &t->REG1);
- printf("sizeof(t): %d\n", sizeof(t));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement