Анализируя проект микроконтроллера, я наткнулся на некоторые запахи кода, которые не могу себе объяснить.
Есть 2 функции, которые полностью идентичны. Эти 2 функции вызываются несколько раз из конечного автомата. Мне интересно, почему кто-то скопировал и переименовал функцию, чтобы вызывать ее из разных мест кода?
Функции называются timerfunction_display_handler и temp_timerfunction_display_handler, как вы можете видеть ниже.
static void timerfunction_display_handler(uint8_t i)
{
if(tommy_context[i].step == WARMING_STEP)
{
if(general_context.config_value[TEMP_STEP_SWITCH] == 2)
{
cleaning_handler_temp_no_blink(i);
}
else
{
cleaning_handler_step_no_blink(i);
}
}
/*normal cooking*/
else if(tommy_context[i].step <= MAX_COOKING_STEP)
{
set_tommy_led(NOTHING,secure_context[i].cooking_step,NOTHING,1u,i,(i+1u)%2u,i);
}
else
{
set_tommy_led(NOTHING,P,NOTHING,1u,i,(i+1u)%2u,i);
}
}
static void temp_timerfunction_display_handler(uint8_t i)
{
// same code as code
}
Любая подсказка или предложение очень ценится.
**************** Обновление **************
Да, эти две функции находятся в одном файле c, и есть еще 2 (4) функции, которые следуют одному и тому же (анти) -паттерну.
**************** Обновление **************
С наилучшими пожеланиями
Ханнес