请教一个问题??
#include <stdio.h>
int inc(int a)
{
return(++a);
}
typedef int(FUNC1)(int in);//为什么不是typedef int(* FUNC1)(int in);//
FUNC1 p=&inc;
[解决办法]
帮你顶一下
应该是小问题
[解决办法]
可以这样申明,带了*是申明的指针类型,不带*是申明的非指针类型。但使用的时候要用指针,比如下面这个例子:
#include <stdio.h>
#include <stdlib.h>
int inc(int a) {
return (++a);
}
typedef int (FUNC1)(int in);//为什么不是typedef int(* FUNC1)(int in);//
typedef int (*func2) (int); // 这个是定义的函数指针
int main() {
FUNC1* fun1 = inc; // 申明函数指针变量的时候要加*
func2 fun2 = inc; // 申明函数指针变量的时候不用加*
int x = 0;
int y = fun1(x);
int z = fun2(x);
printf( "%d, %d, %d ", x, y, z);
return 0;
}
[解决办法]
typedef int(FUNC1)(int in);这种定义应该很少的,我还没见过。
[解决办法]
一般定义函数类型都是为了使用函数指针,所以一般情况下定义的时候就定义成指针,使用起来方便一些。