//决定的函数的类型应该是:函数的返回值 函数的参数列表

void func()
{
  printf("hello world!");
}

//func函数名其实是代表函数的入口地址

//如何去定义一个指向函数的指针
int myfunc(int a,char b)
{
  printf("int myfunc(int a,char b) !\n");
  return 0;
}
void test01()
{

//1.定义函数类型,通过类型来定义函数指针

typedef int(FUN_TYPE)(int,char);
FUN_TYPE *pFunc = myfunc;pFunc(10, 'a');
(*pFunc)(20, 'b');
myfunc(30,'c');

 

//2. 直接定义函数指针类型

typedef int(*FUNC_P)(int, char);
FUNC_P pFunc2 = myfunc;
pFunc2(20,'d');函数指针指向同类型
pFunc2 = func;

 

3. 直接定义函数指针变量

int(*pFunc3)(int, char) = NULL;
pFunc3 = myfunc;
pFunc3(50,'p');}

注:

定义一个函数python 定义一个函数指针_定义一个函数python

 

 所以

typedef int(FUN_TYPE)(int,char);

可以理解为:

1. int()(int,char); //定义了一个返回值为int,形参为int,char的函数类型,没有名字

2.typedef int(FUN_TYPE)(int,char);     //则表示用typedef帮这个函数类型起了一个名字,叫:FUN_TYPE

3.FUN_TYPE  * pFunc  = myFunc;     //定义了一个FUN_TYPE* 类型的的指针变量pFunc,pFunc指向了函数myFunc

4.函数指针与被指向的函数返回值和形参必须一致