fork(1) download
  1. #include "stdbool.h"
  2. #include "stdint.h"
  3. #include "stdio.h"
  4.  
  5. typedef union {
  6. struct {
  7. uint64_t a;
  8. bool b;
  9. char* c;
  10. } unsigned_data;
  11. struct {
  12. int64_t a;
  13. bool b;
  14. char* c;
  15. } signed_data;
  16. } data1_t;
  17.  
  18. typedef union {
  19. struct {
  20. uint64_t a;
  21. bool b;
  22. char* c;
  23. } data;
  24. } data2_t;
  25.  
  26. int main() {
  27. data1_t d1 = {.signed_data = {-10, true, 0}};
  28. int64_t v1 = d1.signed_data.a;
  29.  
  30.  
  31. data2_t d2 = {.data = {-10, true, 0}};
  32. int64_t v2 = d2.data.a;
  33.  
  34. printf("v1 = %lld, v2 = %lld", v1, v2);
  35. }
Success #stdin #stdout 0s 5496KB
stdin
Standard input is empty
stdout
v1 = -10, v2 = -10