c语言中的typedef

来源:百度知道 编辑:UC知道 时间:2024/05/29 12:15:17
typedef CH_BOOL(* pf_NECH_APP_KEY_PROC)(NECH_APP_KEY_INFO_t *);
解释一下这句语言
不懂,说具体点,悬赏再次提高 NECH_APP_KEY_INFO_t是结构体

你确定你没打错或是少空格了
//对不起,刚才没有认真看待问题,回答过于轻浮。
typedef CH_BOOL(* pf_NECH_APP_KEY_PROC)(NECH_APP_KEY_INFO_t *);

第一你要明白,这句话的整体作用就是
用pf_NECH_APP_KEY_PROC pf;就能得到你定义的这一函数指针;
pf_NECH_APP_KEY_PROC是用来标认,或是别名,用来说明一个变量指针类型的。
或者说,pf_NECH_APP_KEY_PROC 是你函数指针的同义字。
再举例说明
typedef int abc;

你这一语句中的pf_NECH_APP_KEY_PROC,相当于上面abc的作用,用来说明的或定义其它的变量的,不同的是pf_NECH_APP_KEY_PROC定义的是函数指针,abc定义的是int变量

(NECH_APP_KEY_INFO_t *)说明这个函数有NECH_APP_KEY_INFO_t *参数,CH_BOOL是这个函数的返回类型。

以下为用你那函数声明写的
……
typedef CH_BOOL(* pf_NECH_APP_KEY_PROC)(NECH_APP_KEY_INFO_t *);
pf_NECH_APP_KEY_PROC pf;
NECH_APP_KEY_INFO_t * aaa;
CH_BOOL test=pf(aaa);
……

理解事物要学会将复杂问题简单化,
typedef CH_BOOL(* pf_NECH_APP_KEY_PROC)(NECH_APP_KEY_INFO_t *);

在这句里的pf_NECH_APP_KEY_PROC和NECH_APP_KEY_INFO_t都不是理解的重点,

所以我们可以把它改写成
typedef CH_BOOL(* TypeA)(TypeB *);

这其实是在定义函数指针(一个指向函数的指针)类型TypeA,

该函数指针指向的函数类型是