ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
57631 Топик полностью
she (28.04.2006 17:10, просмотров: 1) ответил volkanaft на при pack(1) это будет положим хххххх+2+1, а при pack(2) xxxxxx+2+2, а при pack(3)(может и такое быть!) xxxxxx+3+3
компилируйте, наслаждайтесь... 
#include "stdafx.h"
#include "stdio.h"
#include "stddef.h"

#pragma pack(2)

typedef struct _SAMPLE2
{
	char a;
	short b;
	short c;
}SAMPLE2;

#pragma pack(1)

typedef struct _SAMPLE1
{
	char a;
	short b;
	short c;
}SAMPLE1;

SAMPLE2 s2;
SAMPLE1 s1;

int _tmain(int argc, _TCHAR* argv[])
{
	printf ("pack = 2\r\n");
	printf ("a size - %d\r\n",sizeof(s2.a));
	printf ("b size - %d\r\n",sizeof(s2.b));
	printf ("c offset - %d\r\n",offsetof(SAMPLE2,c));
	printf ("pack = 1\r\n");
	printf ("a size - %d\r\n",sizeof(s1.a));
	printf ("b size - %d\r\n",sizeof(s1.b));
	printf ("c offset - %d\r\n",offsetof(SAMPLE1,c));
	getchar ();
	return 0;
}