関数へのポインタ宣言で質問です
#include <stdio.h>

int num(int,int);

int main()
{
int (*p)();
int a=1,b=2;
p=num;
a=(*p)(a,b);
}
本ではこれで成り立つはずなんですが
VC++でコンパイルするとエラーになります
変数宣言の部分で
int (*p)(int,int)
と引数の型と数を指定すればエラーにはならないのですが
これは本が間違っているのかVC++の仕様なのかわかりません
どなたか教えてください。