Не знаю как лучше реализовать. Есть три файла h1.h, h2.h и main.cpp. В зависимости от типа задачи нужно подключить один из хедеров и вызвать из нее функцию, у которой аргументы как и в другом *.h файле.
main.cpp
int main()
{
int a=5;
f(a);
return 0;
}
h1.h
void f(int a){printf("%i\n",a);}
h2.h
void f(int a){printf("%i\n",a+1);}
Если сделать одинаковые функции, с одинаковыми аргументами компилятор ругается, что функция переопределена.