2011-03-01 152 views
2

int *fun(void)int fun*(void)有什么区别?功能指针

+5

他们看上下文不完整,出以不同的方式?请澄清你的问题。 – Timbo 2011-03-01 09:05:16

+0

为什么你将这个帖子的指针命名为一个函数? – Lundin 2011-03-01 10:42:32

+2

你的意思是除了第二个错误,它不会编译的事实? – krtek 2011-03-01 09:09:53

回答

6

前者开始定义(或声明,取决于接下来的内容)返回指向int的指针的函数。后者是一个语法错误。函数指针也不是。

一个函数指针需要是这样的:

int (*fun)(void); 

声明一个指针,返回int功能。

+0

由于在一分钟内,我们的答案变得相似。我想,我应该学会打字至少为了S0 :) – Mahesh 2011-03-01 09:28:29

+0

@Mahesh:没有必要,如果他得到更多的选票:D – AntonioCS 2013-05-19 14:08:19

3
int* fun(void); 

fun不带任何参数,但返回一个指针为整数。我认为,第二个是语法错误。如果你想为一个函数指针,那么它应该是 -

int (*fun)(void)= NULL; 

现在,fun是指向不带任何参数,但返回一个整数的函数。

0

INT * FUNC(无效)

通常有效的声明有3三个部分,并用端部;分号。

部分1) 参数

空隙均值 - 无参数 (参数可以是如复杂和数量而变化)

第2部分) 返回类型(可以是用户类型或建立)

INT *的意思是 - (返回类型)是指向int的指针

第3部分) 函数的名称(可以是任何东西,应该是合乎逻辑的运算它将会执行。

FUNC均值 - 功能

在第二了Syntex的名称。 我们有*在第2部分和第3部分之间。

这是不被允许和有意义的。 您可以将*添加到void或int。

  • INT * FUNC(无效)

  • INT FUNC(无效*)

或函数指针作为回答。

(* pf)();

(* PF)(无效)