[ create a new paste ] login | about

Link: http://codepad.org/DjVFGHiU    [ raw code | output | fork ]

AaronMiller - C, pasted on Feb 28:
#include <stdio.h>
#include <string.h>

int sum(int x, int y) { return x+y; }
int dif(int x, int y) { return x-y; }

void(*GetFunc(const char *name))() {
  if (!strcmp(name,"sum")) { return (void(*)())sum; }
  if (!strcmp(name,"dif")) { return (void(*)())dif; }

  return (void(*)())0;
}

int main() {
  int x, y;
  int(*Sum)(int,int);
  int(*Dif)(int,int);

  *((void(**)())&Sum) = GetFunc("sum");
  *((void(**)())&Dif) = GetFunc("dif");

  x = 3;
  y = 1;

  printf("%i <sum> %i = %i\n", x, y, Sum(x, y));
  printf("%i <dif> %i = %i\n", x, y, Dif(x, y));

  return 0;
}


Output:
1
2
3 <sum> 1 = 4
3 <dif> 1 = 2


Create a new paste based on this one


Comments: