fork download
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <stddef.h>
  4. #include <string.h>
  5.  
  6. typedef struct A_
  7. {
  8. bool t;
  9. long long s;
  10. } A;
  11.  
  12. typedef struct B_
  13. {
  14. int t;
  15. long long s;
  16. } B;
  17.  
  18. int main(void) {
  19. A r1;
  20. A r2;
  21.  
  22. r1.t = false;
  23. r1.s = 123123123;
  24.  
  25. r2 = r1;
  26.  
  27. size_t Asize = sizeof(A);
  28. size_t paddSizeA = offsetof(A, s) - sizeof(r1.t);
  29. int Aresult = memcmp(&r1, &r2, sizeof(A));
  30.  
  31. B k1;
  32. B k2;
  33.  
  34. k1.t = 0;
  35. k1.s = 123123123;
  36.  
  37. k2 = k1;
  38.  
  39. size_t Bsize = sizeof(B);
  40. size_t paddSizeB = offsetof(B, s) - sizeof(k1.t);
  41. int Bresult = memcmp(&k1, &k2, sizeof(B));
  42.  
  43. printf("A struct size: %d -- Paddind A struct: %d -- memcmp res: %d\n", Asize, paddSizeA, Aresult);
  44. printf("B struct size: %d -- Paddind B struct: %d -- memcmp res: %d\n", Bsize, paddSizeB, Bresult);
  45. return 0;
  46. }
Success #stdin #stdout 0s 2008KB
stdin
Standard input is empty
stdout
A struct size: 12 -- Paddind A struct: 3 -- memcmp res: 0
B struct size: 12 -- Paddind B struct: 0 -- memcmp res: 0