/* Traverse a complex number */ int complex_traverse(vcomplex *c, int (*func)(void *ptr)) { int val; if ((val = func(c)) != 0) return val; if (v_traverse_seen(c)) return 0; v_push_traverse(c); /* Internal pointer traversal would go here */ v_pop_traverse(); return 0; }