Исправление beastie, (текущая версия) :
Ты прикидываешься или в самом деле?
#include <stdio.h>
struct data {
unsigned short a1;
unsigned char a2;
unsigned short a3;
unsigned short a4;
unsigned char a5;
unsigned short a6;
unsigned short a7;
unsigned short bufer[1200];
};
struct __attribute__ ((packed)) data2 {
unsigned short a1;
unsigned char a2;
unsigned short a3;
unsigned short a4;
unsigned char a5;
unsigned short a6;
unsigned short a7;
unsigned short bufer[1200];
};
int
main()
{
printf("unpacked: %d\n", sizeof(struct data));
printf("packed: %d\n", sizeof(struct data2));
return 0;
}
unpacked: 2414
packed: 2412
Выводы делай сам.
PS: заполнять структуры memcpy — плохой тон и гарантированный способ выстрелить себе в ногу. Выше уже всё сказано.
Исходная версия beastie, :
Ты прикидываешься или в самом деле?
#include <stdio.h>
struct data {
unsigned short a1;
unsigned char a2;
unsigned short a3;
unsigned short a4;
unsigned char a5;
unsigned short a6;
unsigned short a7;
unsigned short bufer[1200];
};
struct __attribute__ ((packed)) data2 {
unsigned short a1;
unsigned char a2;
unsigned short a3;
unsigned short a4;
unsigned char a5;
unsigned short a6;
unsigned short a7;
unsigned short bufer[1200];
};
int
main()
{
printf("unpacked: %d\n", sizeof(struct data));
printf("packed: %d\n", sizeof(struct data2));
return 0;
}
unpacked: 2414
packed: 2412
Выводы делай сам.