How to define and use union in C

1 Answer

0 votes
#include <stdio.h>
#include <stdint.h>

union U
{
    uint32_t u32;
    uint16_t u16[3];
    uint8_t  u8;
} u = {10000002}; 

int main(void)
{

    printf("Union size: %lu\n", sizeof u);
    printf("u32: %llu\n", u.u32);
    printf("u16[1]: %u\n", u.u16[1]);
    printf("u8: %u\n\n", u.u8);
    
    u.u16[1] = 200; 
    printf("Union size: %lu\n", sizeof u);
    printf("u32: %llu\n", u.u32);
    printf("u16[1]: %u\n", u.u16[1]);
    printf("u8: %u\n\n", u.u8);
    
    u.u8 = 21; 
    printf("Union size: %lu\n", sizeof u);
    printf("u32: %llu\n", u.u32);
    printf("u16[1]: %u\n", u.u16[1]);
    printf("u8: %u\n", u.u8);

        
    return 0;
}

/*
run:
 
Union size: 8
u32: 10000002
u16[1]: 152
u8: 130

Union size: 8
u32: 13145730
u16[1]: 200
u8: 130

Union size: 8
u32: 13145621
u16[1]: 200
u8: 21

*/

 



answered Aug 29, 2016 by avibootz

Related questions

1 answer 256 views
2 answers 416 views
1 answer 296 views
1 answer 240 views
2 answers 293 views
...