fork download
  1. #include <stdio.h>
  2.  
  3.  
  4. struct str_0
  5. {
  6. char c_1;
  7. char c_2;
  8. char c_3;
  9. char c_4;
  10. int i_1;
  11. };
  12.  
  13. struct str_1
  14. {
  15. char c_1;
  16. char c_2;
  17. char c_3;
  18. int i_1;
  19. };
  20.  
  21. struct str_2
  22. {
  23. char c_1;
  24. char c_2;
  25. int i_1;
  26. };
  27.  
  28. struct str_3
  29. {
  30. char c_1;
  31. int i_1;
  32. };
  33.  
  34. int main(void)
  35. {
  36. struct str_0 str0;
  37. struct str_1 str1;
  38. struct str_2 str2;
  39. struct str_3 str3;
  40.  
  41. printf("%li %li %li %li\n",
  42. (char *)&str0.c_2 - (char *)&str0.c_1,
  43. (char *)&str0.c_3 - (char *)&str0.c_2,
  44. (char *)&str0.c_4 - (char *)&str0.c_3,
  45. (char *)&str0.i_1 - (char *)&str0.c_4 );
  46.  
  47. printf("%li %li %li\n", (char *)&str1.c_2 - (char *)&str1.c_1,
  48. (char *)&str1.c_3 - (char *)&str1.c_2,
  49. (char *)&str1.i_1 - (char *)&str1.c_3 );
  50.  
  51. printf("%li %li\n", (char *)&str2.c_2 - (char *)&str2.c_1,
  52. (char *)&str2.i_1 - (char *)&str2.c_2 );
  53.  
  54. printf("%li\n", (char *)&str3.i_1 - (char *)&str3.c_1);
  55.  
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 1788KB
stdin
Standard input is empty
stdout
1 1 1 1
1 1 2
1 3
4