How to create union with struct inside in C++

1 Answer

0 votes
#include <iostream>
#include <bitset>

union Example {
    char arr[4]; // 4 bytes
    struct { short hi, lo; } st; // 4 bytes
    int i; // 4 bytes
} u;

void print_bits(int n) { 
    std::bitset<32> bits(n);
    std::cout << bits << '\n';
}

void print_bits(short s) { 
    std::bitset<16> bits(s);
    std::cout << bits << '\n';
}

void print_bits(char ch) { 
    std::bitset<8> bits(ch);
    std::cout << bits << '\n';
}

int main()
{
    u.i = 0xFF00F00F; 

    print_bits(u.i);

    print_bits(u.st.lo);
    print_bits(u.st.hi);
    
    print_bits(u.arr[3]);
    print_bits(u.arr[2]);
    print_bits(u.arr[1]);
    print_bits(u.arr[0]);
}




/*
run:

11111111000000001111000000001111
1111111100000000
1111000000001111
11111111
00000000
11110000
00001111

*/

 



answered Dec 1, 2022 by avibootz
edited Dec 1, 2022 by avibootz

Related questions

2 answers 162 views
1 answer 164 views
1 answer 198 views
2 answers 191 views
1 answer 119 views
1 answer 148 views
...