Можно ли создать одну функцию вместо двух функций с той же целью, но с разными типами аргументов?
У меня есть две функции, написанные на C, они конвертируют изображение из RGB в HSV:
void png_rgb2hsv(pPNG_DATA data);
void jpg_rgb2hsv(pJPEG_DATA data);
они выполняют точно такую же вещь: они берут data- > row_pointers и циклируют его в течение данных цикла → height. Затем он преобразует значения, указанные данными → row_pointers. Вот как это работает. Но единственное отличие состоит в том, что структуры данных используют разные типы. Мне кажется бессмысленным использовать две функции для одной и той же вещи. Особенно, когда я добавляю больше функций для большего количества цветовых пространств.
Как эта проблема проектирования программ на практике решена на C?
Update: Большинство читателей не поняли вопроса. Я не спрашивал о перегрузке. Это был вопрос о дизайне. Я спрашиваю, можно ли удалить избыточную функцию, "избыточный" код. Поскольку обе функции используют один и тот же код, делайте то же самое, но типы в аргументе функции различны, потому что один тип из libjpeg, а второй тип - из libpng. Я обнаружил, что это невозможно, потому что это означает использование одной переменной для двух разных типов.