如题所述
typedef void (*T) (void *);定义了一个指向函数的指针T,其返回值 void 类型,参数也是后面的(void *)接下来我们就可以直接使用 T 来定义这种指针变量,比如:T fn1; //等价于void fn1 (void *);
使用:void func(void *); //声明函数
T fn1; //定义变量
fn1=func; //赋值
(*fn1)(); //执行
使用:void func(void *); //声明函数
T fn1; //定义变量
fn1=func; //赋值
(*fn1)(); //执行
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-02-20
先举个例子:typedef int * I;
跟例子一样,这是定义一个新类型,T是一种类型 跟I一样
例如你可以这样定义变量:I a;
T fun;
只不过 I是整型指针类型,而T是函数指针类型;fun 是变量,这个指针变量指向一个函数
这个函数有一个参数 是void*类型 返回值 是void 就是没有返回值
跟例子一样,这是定义一个新类型,T是一种类型 跟I一样
例如你可以这样定义变量:I a;
T fun;
只不过 I是整型指针类型,而T是函数指针类型;fun 是变量,这个指针变量指向一个函数
这个函数有一个参数 是void*类型 返回值 是void 就是没有返回值
第2个回答 推荐于2016-01-04
定义了一个函数指针;
void fun(void *); // 如此形式的函数
int num;
T t = fun;
t(&num); // 调用函数 等于 fun(&num);
第3个回答 推荐于2016-11-20
typedef void (*T) (void *);
把void (*T)和(void *)等同起来
typedef int myInt;
这个就是用myInt代替int。追问
把void (*T)和(void *)等同起来
typedef int myInt;
这个就是用myInt代替int。追问
为什么(void *)不是函数(*T)的参数呢?
追答他这个是定义,没有为什么吧。C语言规定。我也不知道为什么这个是比较底层的东西
本回答被提问者和网友采纳第4个回答 2012-02-16
T是指unicode编码的意思。