У меня небольшая проблема, у меня есть указатель на эту функцию:
typedef void* (* funcPointer)(const void *in, int ilen, void *out, int *olen)
И эта функция
void* foo1(const void *in, int ilen, void *out, int *olen)
{
if(CONST_VALUE_1 > iLen)
//do something
else
//do something else
return whatever;
}
Где-то в коде
// ...
funcPointer fpointer = foo1;
if(someArgument > SOME_OTHER_CONSTANT)
// where foo2 is the same as foo1 except that it uses CONST_VALUE_2
fpointer = foo2;
bar( someVariable, anotherVariable, fpointer);
// ...
Как видите, в теле этой функции есть CONST_VALUE_X
. Я хотел бы иметь возможность удалить константу и использовать вместо этого пятый аргумент. Поскольку я не могу изменить сигнатуру, мне было интересно, было ли что-то сделать или скопировать и вставить функцию с каждым возможным постоянным значением ...
Спасибо