#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);
return 0;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKICAKCnZvaWQgbXlfY2hhcl9wbHVzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIsIHZvaWQgKmMpCnsKICAgIGNoYXIgdG1wID0gICgqKGNoYXIqKWEgKyAqKGNoYXIqKWIpOwogICAgbWVtY3B5KGMsKHZvaWQqKSgmdG1wKSxzaXplb2YoY2hhcikpOwp9CgogIAoKdm9pZCBvcGVyYXRpb24oY29uc3Qgdm9pZCAqZnVuY3QoY29uc3Qgdm9pZCosY29uc3Qgdm9pZCosdm9pZCopLAogICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYiwgdm9pZCAqYyApCnsKICAgIGZ1bmN0KGEsYixjKTsKfQoKICAgICAKCmludCBtYWluKHZvaWQpCnsKICAgIGNoYXIgYSwgYiwgYzsKICAgIGEgPSA1OyBiID0gNzsKICAgIAogICAgdm9pZCAqcGx1cyA9ICZteV9jaGFyX3BsdXM7CiAgICBvcGVyYXRpb24ocGx1cywgKGNvbnN0IHZvaWQqKSZhLCAoY29uc3Qgdm9pZCopJmIsICh2b2lkKikmYyk7CiAgICBwcmludGYoIiVpXG4iLCBjKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=