ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
8 июля
249442 Топик полностью
ReAl (21.04.2011 17:58, просмотров: 83) ответил mazur на Делали ли вы подобное, практикуется ли подобное? Есть несколько практически одинаковых подпрограмм. Различаются лишь несколькими строками в середине. Я решил попробовать сделать следующее. Сделать одну подпрограмму "А". Те несколько строк
А теперь -- если эти мелкие различия каждое нужно для своего набора одинаковых данных от разных источников (т.е., например, есть несколько одинаковых наборов данных, но связаны с разной периферией и отличия в обработке заключаются в обращении к разным регистрам), то данные можно собрать в структуру, указатель на функцию «отличий» положить в эту же структуру. Основная подпрограмма «А» может получать в Y указатель на эту структуру и работать с элементами данных по смещению (тоже удобно), а в нужный момент из этой же структуры в Z вынуть указатель для ICALL. Та функция сразу в Y получит и указатель на данные, тоже вместо LDS/STS будеть работать с LDD/STD, код короче. И когда на «Что скажете?» после описания такого получите совет «Изучи С++» -- не удивляйтесь :-)