这样的结构占几个字节?
struct Test
{
unsigned char a;
unsigned long c;
} test;
unsigned long len = 0;
len = sizeof(unsigned char);
len = sizeof(unsigned long);
len = sizeof(test); //len = 8
void* p = &test;
memset(p,0,5); //发现unsigned long c只被初始化一个字节
我在windows2k下VC60单步调试发现
sizeof(test) = 8
且多出来的字节是在a和c之间
请问是什么原因???
4字节对齐
现在的系统基本上都是4字节对其的;
所以是8;
struct t {
char a;
long b;
char c;
}
是 12个字节
呵呵!VC下只需要改动:Project/Setting中的C/C++下的CodeGeneration Category中:Struct member alignment 为 1Byte即可