Есть две структуры: 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)