Why is sizeof (str_test) equal to 12 for package 8?
From MSDN Docs :
, n , , .
- 4 , 8, 4 .
?
, . 8 :
#pragma pack(push, 8)
struct str_test
{
unsigned int n;
unsigned short s;
unsigned char b[4];
};
#pragma pack(pop)
sizeof (str_test) 12.
, , (MSVC2010) , unsigned char b[4]; . 2 cc cc .
#pragma pack(push, 8)
struct str_test
{
unsigned int n;
unsigned short s;
int;
};
#pragma pack(pop)
, , char[4] int 6 8 .
int
04 03 02 01 a2 a1 cc cc f0 f1 f2 f3
unsigned char[4]
04 03 02 01 a2 a1 f0 f1 f2 f3 cc cc