fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <stddef.h>
  4.  
  5. typedef struct {
  6. uint8_t f1;
  7. uint32_t f2;
  8. uint16_t f3;
  9. } example_TypeDef;
  10.  
  11. void print_st(example_TypeDef *st) {
  12. printf("%hhu %hu %u \n", st->f1, st->f2, st->f3);
  13. }
  14.  
  15. int main(void) {
  16. example_TypeDef a;
  17. example_TypeDef b;
  18. uint8_t *a_mem;
  19. uint8_t *b_mem;
  20.  
  21. a.f1 = 11;
  22. a.f2 = 22;
  23. a.f3 = 44;
  24.  
  25. b.f1 = 55;
  26. b.f2 = 66;
  27. b.f3 = 77;
  28.  
  29. printf("sizeof: %ld\n", sizeof(example_TypeDef));
  30. printf("a = "); print_st(&a);
  31. printf("b = "); print_st(&b);
  32.  
  33. printf("copy b <- a\n");
  34. a_mem = (uint8_t *)(&a);
  35. b_mem = (uint8_t *)(&b);
  36. for (int i = 0; i < sizeof(example_TypeDef); i++) {
  37. b_mem[i] = a_mem[i];
  38. }
  39. printf("a = "); print_st(&a);
  40. printf("b = "); print_st(&b);
  41.  
  42. return 0;
  43. }
  44.  
Success #stdin #stdout 0s 4952KB
stdin
Standard input is empty
stdout
sizeof: 12
a = 11 22 44 
b = 55 66 77 
copy b <- a
a = 11 22 44 
b = 11 22 44