模糊的声明

时间:2010-10-04 14:12:19

标签: c++ c function declaration

以下两个声明之间有什么区别:

 1. int foo(int); 
 2. int foo(int());

我不确定这两个声明是否相同。是什么让(2)(1)不同?

1 个答案:

答案 0 :(得分:13)

int foo(int);是函数的声明,它将整数作为参数并返回一个整数

int foo(int());声明一个函数作为参数“指向函数的指针返回int并且使用{无参数[在C ++中]和未指定数量的参数[在C]中”并返回整数。

(2)相当于int foo(int (*pf)())int foo(int f())