fork(1) download
  1. #include <cstdio>
  2. using namespace std;
  3.  
  4. union myUnion {
  5. int var1; // 32 bits
  6. long int var2; // 64 bits
  7. char var3; // 8 bits
  8. }; // union size is 64 bits (size of largest member)
  9.  
  10. int main()
  11. {
  12. myUnion a;
  13. a.var1 = 10;
  14. printf("a is %ld bits and has value %d\n",sizeof(a)*8,a.var1); // ...has value 10
  15. a.var2 = 123456789;
  16. printf("a is %ld bits and has value %ld\n",sizeof(a)*8,a.var2); // ...has value 123456789
  17. a.var3 = 'y';
  18. printf("a is %ld bits and has value %c\n",sizeof(a)*8,a.var3); // ...has value y
  19. printf("a is %ld bits and has value %ld\n",sizeof(a)*8,a.var2); //... has value 123456789, why???
  20. return 0;
  21. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
a is 32 bits and has value 10
a is 32 bits and has value 123456789
a is 32 bits and has value y
a is 32 bits and has value 123456889