codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> typedef enum CALC { ADD, SUB, MUL }; int add(int a, int b) { return a+b; } int sub(int a, int b) { return a-b; } int mul(int a, int b) { return a*b; } int(*funcs[])(int, int) = {add, sub, mul}; void* func(enum CALC mode) { return funcs[mode]; } int main() { printf("num1: %d; num2: %d; mode: %d; func = %d\n", 10, 10, ADD, ( (int (*)(int,int)) (func(ADD)) )(10, 10) ); printf("num1: %d; num2: %d; mode: %d; func = %d\n", 10, 10, SUB, ( (int (*)(int,int)) (func(SUB)) )(10, 10) ); printf("num1: %d; num2: %d; mode: %d; func = %d\n", 10, 10, MUL, ( (int (*)(int,int)) (func(MUL)) )(10, 10) ); return 0; }
Private
[
?
]
Run code
Submit