ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
539471 Топик полностью
abivan (15.08.2014 11:30, просмотров: 119) ответил Codavr на Как ей сказать что я хочу передать. Только не на пальцах, а прямо кодом пжалста, а то я половину того что мне тут народ на словах говорит понять не могу. Ну и дополнительно инфа для размышления, type1, 2 итд тоже могут быть структурами. Ну
пожалуйста и только попробуйте сказать что слишком сложно и много букв :-) #include <stddef.h> #include <stdarg.h> typedef struct { unsigned ElementA; unsigned ElementB; unsigned ElementC; unsigned ElementD; }t_Element; typedef struct { unsigned QntElem; t_Element Table[64]; }t_Chanal; #define QNT_ELEM offsetof(t_Chanal, QntElem) #define ELEMENT offsetof(t_Chanal, Table) typedef struct { unsigned QntChanal; t_Chanal Chanal[16]; }t_StoreData; #define CHANAL offsetof(t_StoreData, Chanal) t_StoreData StoreData; void* GetStoreData(unsigned Par1, ...); void main() { unsigned QntElem; StoreData.Chanal[1].Table[12].ElementA; StoreData.Chanal[1].QntElem = 64; QntElem = *(unsigned *)GetStoreData(CHANAL, 1, QNT_ELEM); // Запрос } void* GetStoreData(unsigned Par1, ...) { if (Par1 == CHANAL) { unsigned Par2; unsigned Par3; va_list ap; va_start(ap, Par1); Par2 = va_arg(ap, unsigned); Par3 = va_arg(ap, unsigned); va_end(ap); if (Par3 == ELEMENT) { ; /* if..... */ } else /*Par3=QNT_ELEM*/ return (&StoreData.Chanal[Par2].QntElem); } else return (&StoreData.QntChanal); }