typedef __code (*csPtr)(__rectype*); #include __code cs_end(csPtr *p) { printf("end\n"); } __code cs(csPtr p) { csPtr *b; // <- This declaration please care. goto p(b); // goto p(3); // note: expected ‘void (**’ but argument is of type ‘int’ } int main() { csPtr p; p = cs_end; goto cs(p); return 0; }