#include <iostream>
#define SIZE_TEXT 20
#pragma pack(push, 1)
class ZooMainHeader
{
//#pragma pack(push, 1)
char text[SIZE_TEXT];
unsigned int zoo_tag;
unsigned int zoo_start;
unsigned int zoo_minus;
unsigned char minor_ver;
unsigned char major_ver;
unsigned char type;
unsigned char vdata;
unsigned int acmt_pos;
unsigned short acmt_len;
//#pragma pack(pop)
public:
int isMainHeader()
{
if(zoo_tag != 0 || zoo_start + zoo_minus != 0L)
return 0;
return 1;
}
unsigned int getStrart()
{
return (unsigned int)zoo_start;
}
};
int main(void)
{
printf( "sizeof ZooMainHeader %d/n", sizeof(ZooMainHeader));
return 0;
}
#pragma pack(pop)
以齐放在类内的类外,两种情况下,sizeof(ZooMainHeader)分类别是44(编译器做了额外2字节对齐),42
vs2008没有区别是42,