int *fun(void)
和int fun*(void)
之间有什么区别?
答案 0 :(得分:6)
前者开始定义(或声明,取决于下一步)一个返回指针int
的函数。后者是语法错误。两者都不是函数指针。
函数指针需要如下所示:
int (*fun)(void);
这声明了一个指向返回int
的函数的指针。
答案 1 :(得分:3)
int* fun(void);
fun
不接受任何参数但返回指向整数的指针。我认为,第二个在语法上是错误的。如果您正在尝试使用函数指针,那么它应该是 -
int (*fun)(void)= NULL;
现在,fun
是指向不带参数但返回整数的函数的指针。
答案 2 :(得分:0)
int * func(void)
一般来说,有效声明有3个部分,最后是;分号。
第1部分) 参数
虚无意义 - 没有争论 (论证可能很复杂,数量也各不相同)
第2部分) 返回类型(可以是用户类型或内置)
int * mean - (返回类型)是指向int
的指针第3部分) 函数的名称(可以是任何东西,应该是它将要执行的操作的逻辑。
func mean - 函数名称
在第二个syntex中。 我们在第2部分和第3部分之间有*。
这是不允许和有意义的。 要么你可以添加*到void或int。
int * func(void)
int func(void *)
或作为已回答的函数指针。
(* pf)();
或
(* pf)(无效)