typedef int(*CallBack)(char *p),这个太难理解了,怎么理解呢?

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:21:13
typedef int a
这个我就知道是什么意思,就是把a还代替int,请问
typedef int(*CallBack)(char *p),
这个又是什么意思呢?

typedef int(*CallBack)(char *p);//后面';'

变量名:CallBack
1.*CallBack:CallBack是一个指针
2.(*CallBack)():指向一个函数
3.(*CallBack)(char *p):这个函数有一个参数,类型为char*
4.int(*CallBack)(char *p):这个函数有一个返回值,类型为int

最终:CallBack是一个指针,指向具有一个char*类型参数,且返回一个int型数据的函数
前面有个typedef,所以现在CallBack是这种类型的别名

int func(char *p){
...
}

...
CallBack my_callback1 = func;//OK
CallBack my_callback2 = &func;//OK
以上二者均可

就是函数指针:

typedef int (*CallBack)(char *p);

int foo(char *p);
CallBack p = foo;

定义了CallBack类型,这个类型是一个函数指针,返回值为int型,参数为一个char*型

关注下
看看大家对callback怎么说