ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
619473 Топик полностью
Скрипач, пророк (15.09.2015 10:30 - 10:37, просмотров: 448) ответил Make_Pic на ВЫ можете дать полное описание макросов, которыми вы пользуетесь в этой "головоломке", многим незнакомым с protothreads интересно будет?
Без проблем (внутри). Если не достаточно - задавайте вопросы.  struct pt *pt; // На самом деле, struct pt это int16, в котором хранится // номер строки, на котором вышли из процедуры // полный аналог состояния у Шатыло, только "безымянный" и спрятанный в макросах. PT_BEGIN(pt); // На самом деле switch по состоянию pt PT_END(pt); // Внутри PT_BEGIN(pt) стоит метка case 0, поэтому // инициализированный нулем pt приведет в выполнению // следующей за PT_BEGIN(pt) команды. PT_RESTART(pt) // сбрасывает pt в ноль. PT_WAIT_UNTIL(pt, <bool>); // Внутри макроса ставится метка case и проверяется условие <bool>. PT_WAIT_WHILE(pt, <bool>); // До выполнения (не выполнения) условия, из PT_BEGIN(pt) // будем получать управление сюда и сразу выходить // из функции через return PT_WAITING;
... но не любой ценой.