Kiedyś już chyba pojawił się taki temat, jednak rozwiązanie w nim podane nie do końca spełnia moje potrzeby. Nie wiem, czy mój "problem" uda się rozwiązać, ale być może ktoś z Was wpadnie na jakiś pomysł. ;)
Ok, zaczynam. Mam kilka funkcji, które wykonują obliczenia matematyczne na pewnym buforze (z liczbami), funkcje wyglądają tak:
void funX(double *buf, int size)
{
// trochę zmiennych
double wynik;
outter_lib_X key;
wynik = call_fun_XX(buff, size, key);
// operacje na wyniku i wyświetlenie go
}
void funY(double *buf, int size)
{
// trochę zmiennych
double wynik;
outter_lib_Y key;
wynik = call_fun_YY(buff, size, key);
// operacje na wyniku i wyświetlenie go
}
void funZ(double *buf, int size)
{
// trochę zmiennych
double wynik;
outter_lib_Z key;
wynik = call_fun_ZZ(buff, size, key);
// operacje na wyniku i wyświetlenie go
}
Wydaje się proste, ale są 2 kwestie:
- podfunkcje wywoływane w funkcjach mają różne nazwy - każda dla każdej funkcji jest inna
- podfunkcje mają właściwie takie same argumenty, różnią się jedynie typem danych zmiennej 'key' - w każdej funkcji jest ona innego typu (zdefiniowango w zewnętrzej bibioltece, której używam i nie mogę zmienić)
Jakieś pomysły, jak uprościć taki kod? Gdybym chciał dodać więcej funkcji robiących właściwie to samo, ale wywoływujących inną podfunkcję z innym kluczem, to kod mi się rozrasta, a czuję, ;) że da się to zrobić prościej.