#include <stdlib.h>
#include <stdio.h>
#include <string.h>

  

void my_char_plus(const void *a, const void *b, void *c)
{
    char tmp =  (*(char*)a + *(char*)b);
    memcpy(c,(void*)(&tmp),sizeof(char));
}

  

void operation(const void *funct(const void*,const void*,void*),
                      const void *a, const void *b, void *c )
{
    funct(a,b,c);
}

     

int main(void)
{
    char a, b, c;
    a = 5; b = 7;
    
    void *plus = &my_char_plus;
    operation(plus, (const void*)&a, (const void*)&b, (void*)&c);
    printf("%i\n", c);
    
    return 0;
}