>typedef int (*pf)(void);

これってバッドノウハウじゃない?
typedef int (*)(void) pf;
とやるのが良さそうだけど。