Есть две структуры:
typedef struct READ_ENERGY_EXT
{
unsigned char array_num;
unsigned char month_num;
unsigned char tarif_num;
unsigned char mask;
unsigned char format;
double Ap;
double Am;
double Rp;
double Rm;
double R1;
double R2;
double R3;
double R4;
} ENERGY_REG;
typedef struct READ_FLASH_POWER
{
unsigned char power_type;
unsigned char phase_num;
double P[4];
double Q[4];
double S[4];
} FLASH_POWER;
при компиляции gcc 4.0.1
sizeof(ENERGY_REG) - 72
sizeof(FLASH_POWER) -100
при копмиляции C++ Builder
sizeof(ENERGY_REG) - 72
sizeof(FLASH_POWER) -104
насколько я знаю стукрура выравнивается что бы итоговый
размер был кратный наибольшему типу в структуре, то есть
в случае второй структуры кратным 8(double), как это делает Builder,
почему же тогда gcc делает 100 байт. При чем, причем всякие там
#pragma pack(push, 8) и __attribute__((aligned(8))) дело не меняют,
все равно 100 байт. Менять опцию оптимизации(-O) пробовал, тоже самое.
Необходимо перебавать структуры через сокеты с lin сервера на win
клиент. Выравнивать по байту неохото ибо потеряю в производительности,
и конвертировать стуктуру в строку тоже, т.к. структур много, да и не
использовать удобную функцию сокетного send`a тоже
Ответ на:
комментарий
от no1sm

Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от yuko

Ответ на:
комментарий
от Kpoxman
Ответ на:
комментарий
от Mr_Nobody
Ответ на:
комментарий
от Kpoxman
Ответ на:
комментарий
от Mr_Nobody
Ответ на:
комментарий
от yuko

Ответ на:
комментарий
от yuko
Ответ на:
комментарий
от Kpoxman
Ответ на:
комментарий
от vtVitus
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от Legioner
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от Die-Hard
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от Die-Hard
Ответ на:
комментарий
от logIN

Ответ на:
комментарий
от no-dashi
Ответ на:
комментарий
от Die-Hard
Ответ на:
комментарий
от yuko
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от sf
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от sf
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от sf
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от logIN
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [C/C++] Выравнивание структур. Надо ли париться? (2011)
- Форум #pragma pack(1) / __attribute__((packed)); / DWORD ? (2006)
- Форум Размер и выравнивание (2015)
- Форум gcc, задание размера структуры (2015)
- Форум Запись структуры в файл (2014)
- Форум [СИ] структуры, массивы и sizeof(). (2010)
- Форум Выравнивание неполного типа, расположенного на стеке (2015)
- Форум Как работать с BMP разной битности. (2003)
- Форум Segmentation fault при чтении файла. (2003)
- Форум битовые поля (2019)