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.t = r1.t;
  26. r2.s = r1.s;
  27.  
  28. size_t Asize = sizeof(A);
  29. size_t paddSizeA = offsetof(A, s) - sizeof(r1.t);
  30. int Aresult = memcmp(&r1, &r2, sizeof(A));
  31.  
  32. B k1;
  33. B k2;
  34.  
  35. k1.t = 0;
  36. k1.s = 123123123;
  37.  
  38. k2.t = k1.t;
  39. k2.s = k1.s;
  40.  
  41. size_t Bsize = sizeof(B);
  42. size_t paddSizeB = offsetof(B, s) - sizeof(k1.t);
  43. int Bresult = memcmp(&k1, &k2, sizeof(B));
  44.  
  45. printf("A struct size: %d -- Paddind A struct: %d -- memcmp res: %d\n", Asize, paddSizeA, Aresult);
  46. printf("B struct size: %d -- Paddind B struct: %d -- memcmp res: %d\n", Bsize, paddSizeB, Bresult);
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0s 2052KB
stdin
Standard input is empty
stdout
A struct size: 12 -- Paddind A struct: 3 -- memcmp res: 1
B struct size: 12 -- Paddind B struct: 0 -- memcmp res: 0