typedef void (*T) (void *); 是什么意思?

如题所述

typedef void (*T) (void *);定义了一个指向函数的指针T,其返回值 void 类型,参数也是后面的(void *)接下来我们就可以直接使用 T 来定义这种指针变量,比如:T fn1; //等价于void fn1 (void *);
使用: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 就是没有返回值
第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)的参数呢?

追答

他这个是定义,没有为什么吧。C语言规定。我也不知道为什么这个是比较底层的东西

本回答被提问者和网友采纳
第4个回答  2012-02-16
T是指unicode编码的意思。
相似回答