ポインタの宣言は、

int* (*func)( int* (*proc)( int, int), int);

に対して、

*int *func( *int *proc( int, int), int);

とすればいいんじゃないか?もうちょっとPascal風にひねって、

*func( *proc( int, int) : *int, int) : *int;

とすれば、

pointer to function( pointer to function( int, int) returns pointer int, int) returns pointer to int;

という風に素直に読み下せる。