fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #pragma pack(push)
  5. #pragma pack(4)
  6. typedef struct _B
  7. {
  8. char a, b, c;
  9. }B;
  10.  
  11. typedef struct _C
  12. {
  13. char a;
  14. int b;
  15. char c;
  16. }C;
  17.  
  18. typedef struct _D
  19. {
  20. char a;
  21. char b;
  22. int c;
  23. }D;
  24.  
  25. #pragma pack(1)
  26. typedef struct _B2
  27. {
  28. char a, b, c;
  29. }B2;
  30.  
  31. typedef struct _C2
  32. {
  33. char a;
  34. int b;
  35. char c;
  36. }C2;
  37.  
  38. typedef struct _D2
  39. {
  40. char a;
  41. char b;
  42. int c;
  43. }D2;
  44.  
  45. #pragma pack(pop)
  46.  
  47. int main()
  48. {
  49. cout << sizeof(_B) << " "<< sizeof(B) << endl;
  50. cout << sizeof(_C) << " "<< sizeof(C) << endl;
  51. cout << sizeof(_D) << " "<< sizeof(D) << endl;
  52.  
  53. cout << sizeof(_B2) << " "<< sizeof(B2) << endl;
  54. cout << sizeof(_C2) << " "<< sizeof(C2) << endl;
  55. cout << sizeof(_D2) << " "<< sizeof(D2) << endl;
  56.  
  57. return(0);
  58. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
3 3
12 12
8 8
3 3
6 6
6 6