void printi(int val);

int function(int val)
{
  return val;
}

int main()
{
  int val;
  void *p;
  int (*f)(int);

  p = function;

  f = (int (*)(int))p;
  val = f(10);
  printi(val);

  val = ((int (*)(int))p)(20);
  printi(val);

  return 0;
}
