请教一下,下面的类型定义是什么?
例如:
class CallBack;
typedef void *CallData;//回调数据指针类型定义
typedef void (CallBack::*CallBackFunction)(CallData); //指向回调成员函数的指针
typedef void (*CallBackStaticFunction)(CallData); //指向静态成员函数或普通函数的指针类型定义
在代码中, CallData实际上是void * 型
那CallBackFunction 和CallBackStaticFunction 呢?
问题点数:20、回复次数:4Top
1 楼wuhanzhoubin(wuhanzhoubin)回复于 2002-02-13 21:35:34 得分 0
55555Top
2 楼jinzhao2(金钊)回复于 2002-02-14 02:16:41 得分 20
其实函数名就是函数入口地址的指针,特殊的是这个指针的类型。
如typedef void (*FUNC)(int);
则FUNC表示的类型为返回值为void,有一个整型参数的函数。
所以,以下代码是正确的:
#include "stdio.h"
typedef void (*FUNC)(int);
void f(int a) {
printf("%d",a);
}
void main(){
FUNC b=f;
(*b)(4);
}
Top
3 楼wuhanzhoubin(wuhanzhoubin)回复于 2002-02-16 17:32:48 得分 0
谢谢啦Top




