fork download
  1. #include <stdint.h>
  2. #include <cstdio>
  3.  
  4. union DWord
  5. {
  6. DWord() : dword(0)
  7. {}
  8.  
  9. DWord(uint32_t valor) : dword(valor)
  10. {}
  11.  
  12. void operator=(uint32_t valor) { dword = valor; }
  13.  
  14. uint32_t dword;
  15.  
  16. struct
  17. {
  18. uint32_t valor;
  19. };
  20.  
  21. struct
  22. {
  23. uint16_t word0;
  24. uint16_t word1;
  25. };
  26.  
  27. struct
  28. {
  29. uint8_t byte0;
  30. uint8_t byte1;
  31. uint8_t byte2;
  32. uint8_t byte3;
  33. };
  34. };
  35.  
  36. int main()
  37. {
  38. DWord a = 700;
  39.  
  40. printf("O valor no inteiro: %d\n", a.valor);
  41. printf("O valor no bytes 0: %d\n", a.byte0);
  42. printf("O valor no bytes 1: %d\n", a.byte1);
  43.  
  44. // O contrĂ¡rio:
  45.  
  46. DWord b;
  47.  
  48. b.byte0 = 188;
  49. b.byte1 = 2;
  50.  
  51. printf("O valor no inteiro: %d\n", b.valor);
  52.  
  53. return 0;
  54. }
  55.  
  56.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
O valor no inteiro: 700
O valor no bytes 0: 188
O valor no bytes 1: 2
O valor no inteiro: 700