ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
298838 Топик полностью
SciFi (12.01.2012 18:05, просмотров: 86) ответил MegaJohn на имеется программный модуль, который собирает статистику в неупакованную стрктуру. А вот наружу нужно отдать упакованную структуру. Делать тупое присваивание полей struct_pak.fieldN = struct_unpak.fieldN; (но это как то тягомотно ) или же придумать
Я бы сделал функцию-сериализатор, причём объявлять упакованную структуру не нужно, достаточно писать просто в буфер байт за байтом. Можно даже автоматизировать это дело, применив макросы: файл stats_struct.h: STRUCT_FIELD(char, c) STRUCT_FIELD(int, i) файл stats.h: #define STRUCT_FIELD(type, name) type name; struct stats { #include "stats_struct.h" }; #undef STRUCT_FIELD #define STRUCT_FIELD(type, name) sizeof(type), int stats_sizes[] = { #include "stats_struct.h" }; #undef STRUCT_FIELD #define STRUCT_FIELD(type, name) offsetof(stats, name), int stats_offsets[] = { #include "stats_struct.h" };
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้