Вы можете попробовать сделать функции с параметрами объекта.
то есть
void myFunction(void* param, int paramType)
{
if(paramType == definedTypes[0] )
{
// do stuff
}
else if(paramType == definedTypes[1])
{
//do something else
}
}
вы передаете 2 параметра: во первых ваш объект, во втором тип вашего объекта,
Вы должны определить, например, в массиве, какие типы данных вас интересуют.