Можно создать дубликат:
How do I find the size of a struct?
Struct varies in memory size?C размеры Struct несогласованности
Я использую следующую структуру для сетевой связи, он создает много ненужных байтов между ними.
Он дает разные размеры, чем ожидалось, 8 байт.
struct HttpPacket {
unsigned char x1;
union {
struct {
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
unsigned char bytes[7];
unsigned long num;
}
И После дает разный размер, даже если что я извлекая поле от союза
struct HttpPacket {
unsigned char x1;
union {
struct {
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
unsigned long num;
}
Кроме того, более яркий пример
struct {
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
И это дает размер 8, вместо 7. И я добавляю еще одно поле, оно по-прежнему дает одинаковый размер
struct {
unsigned char EXTRAADDEDFIELD;
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
Может кто-то пожалуйста, помогите на решение этой проблемы?
UPDATE: Мне нужен формат для хранения во время передачи пакета, поэтому я хочу, чтобы пропустить эти
Прокладки
Мне нужен формат для хранения при передаче пакета. Поэтому я хочу пропустить эти paddings – coder000001
Нужно это на компиляторе XCode 4 LLVM – coder000001
Но мне нужно решение для нового компилятора LXVM XCode 4. – coder000001