int foo(int);
- это объявление функции, принимающей целое число в качестве аргумента и возвращающей также целое число
int foo(int());
объявляет функцию, принимающую в качестве аргумента «указатель на функцию, возвращающую int
и принимающую {без аргументов [в C ++] и неопределенном количестве аргументов [в C]}» »и возвращающую целое число.
(2)
эквивалентно int foo(int (*pf)())
и int foo(int f())