Повторяющееся определение функции в C коде - В чем может быть причина? - PullRequest
1 голос
/ 22 апреля 2020

Анализируя проект микроконтроллера, я наткнулся на некоторые запахи кода, которые не могу себе объяснить.

Есть 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) функции, которые следуют одному и тому же (анти) -паттерну.

**************** Обновление **************

С наилучшими пожеланиями

Ханнес

...