zltigo 1 25 мая, 2015 Опубликовано 25 мая, 2015 · Жалоба да я уже написал что хочу сделать. Это не ЧТО, это КАК. Настоятельно рекомендую понять, что такое union. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 26 мая, 2015 Опубликовано 26 мая, 2015 (изменено) · Жалоба я заметил одну интересную особенность. если ответ на пост начинается с конструктивного примера/объяснения то все идет нормально. но если ответ начинается с умничания то все хана - слетаются умники и начинают соревноваться между собой. вполне себе тема для научного изыскания. надо подбросить какому нибудь психологу. Изменено 26 мая, 2015 пользователем Herz Грубость Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 26 мая, 2015 Опубликовано 26 мая, 2015 · Жалоба я заметил одну интересную особенность. если ответ на пост начинается с конструктивного примера/объяснения то все идет нормально. но если ответ начинается с умничания то все хана - слетаются умники и начинают соревноваться между собой. Вы путаете причину со следствием. Если вопрос осмысленный и корректный, то и ответы на него такие-же (и первый и последующие). На глупый вопрос можно отвечать или так-же глупо или никак. PS: И чем Вас мой совет про указатели на члены структуры не устраивает????? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 26 мая, 2015 Опубликовано 26 мая, 2015 · Жалоба И чем Вас мой совет про указатели на члены структуры не устраивает????? А чего именно указатели а не смещения offsetof() ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 26 мая, 2015 Опубликовано 26 мая, 2015 · Жалоба Вы путаете причину со следствием. Если вопрос осмысленный и корректный, то и ответы на него такие-же (и первый и последующие). На глупый вопрос можно отвечать или так-же глупо или никак. PS: И чем Вас мой совет про указатели на члены структуры не устраивает????? совет хороший но как его применить. у каждой команды есть своя функция и соответственно свой указатель. я ищу генерик метод подставить указатель по условию. я могу тупо перебрать их все но хочется как то красиво. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CrimsonPig 0 26 мая, 2015 Опубликовано 26 мая, 2015 (изменено) · Жалоба совет хороший но как его применить. у каждой команды есть своя функция и соответственно свой указатель. я ищу генерик метод подставить указатель по условию. я могу тупо перебрать их все но хочется как то красиво. "Сделайте мне красиво" :) Вот вам в качестве примера кривая реализация функторов на сях. Может подвигнет к размышлениям (а может к очередной порции страданий, что опять все плохо...). //-- pointer to function that performs concrete command processing struct TCommandFunctor; typedef int (*PF_CmdProcessor) (const TCommandFunctor* apFunctor); //-- command functor. encapsulated parameters and a pointer to processing function struct TCommandFunctor { uint32 arg1; uint32 arg2; uint8 arg3; uint16 arg4; PF_CmdProcessor pCmdProcessor; }; int DoCallFunctor(const TCommandFunctor* apFunctor) { return apFunctor->pCmdProcessor(apFunctor); } //-- define command processor functions int ProcessCmd1(const TCommandFunctor* apFunctor) { uint32 res1 = apFunctor->arg1 + apFunctor->arg2; return (res1 > 733); } int ProcessCmd2(const TCommandFunctor* apFunctor) { //-- do something else uint32 res1 = apFunctor->arg3 > apFunctor->arg1; return res1; } //-- define and populate functors TCommandFunctor cmdFunctors[2] = { {1, 2, 3, 4, ProcessCmd1}, {11,22,23,24, ProcessCmd2} }; void DoWhatever() { for(int i=0; i<2; ++i) { DoCallFunctor(&cmdFunctors[i]); } } Изменено 26 мая, 2015 пользователем CrimsonPig Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 26 мая, 2015 Опубликовано 26 мая, 2015 · Жалоба "Сделайте мне красиво" :) Вот вам в качестве примера кривая реализация функторов на сях. Может подвигнет к размышлениям (а может к очередной порции страданий, что опять все плохо...). //-- pointer to function that performs concrete command processing struct TCommandFunctor; typedef int (*PF_CmdProcessor) (const TCommandFunctor* apFunctor); //-- command functor. encapsulated parameters and a pointer to processing function struct TCommandFunctor { uint32 arg1; uint32 arg2; uint8 arg3; uint16 arg4; PF_CmdProcessor pCmdProcessor; }; int DoCallFunctor(const TCommandFunctor* apFunctor) { return apFunctor->pCmdProcessor(apFunctor); } //-- define command processor functions int ProcessCmd1(const TCommandFunctor* apFunctor) { uint32 res1 = apFunctor->arg1 + apFunctor->arg2; return (res1 > 733); } int ProcessCmd2(const TCommandFunctor* apFunctor) { //-- do something else uint32 res1 = apFunctor->arg3 > apFunctor->arg1; return res1; } //-- define and populate functors TCommandFunctor cmdFunctors[2] = { {1, 2, 3, 4, ProcessCmd1}, {11,22,23,24, ProcessCmd2} }; void DoWhatever() { for(int i=0; i<2; ++i) { DoCallFunctor(&cmdFunctors[i]); } } спасибо. попробую разобраться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 26 мая, 2015 Опубликовано 26 мая, 2015 · Жалоба А чего именно указатели а не смещения offsetof() ? Без разницы, можно и это. Только вряд-ли это поможет пациенту. Он упорно не хочет открывать учебник.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 3 июня, 2015 Опубликовано 3 июня, 2015 · Жалоба Если хочется перебирать единообразно все злементы структуры... замените структуру на массив и перебирайте сколько душе угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться