1 2 3 4 5 6 7 8 9 10
int foo (int (*func) (undef, void *), void *data) { int err = 0; while (cur) { if ((*func) (cur, data)) break; } return err; }