LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1582|回复: 5

typedef int func(int); // 是什么意思 ?

[复制链接]
发表于 2005-11-3 16:50:56 | 显示全部楼层 |阅读模式
在某个程序的开关有以下几条语句:
#define .....

typedef int Myfuncion(const char*,int);

static Myfunction myfunc;

static int foo2(char*, Myfunction*);

哪位能详细给解释一下啊?
发表于 2005-11-3 17:31:13 | 显示全部楼层
Post by dean13
在某个程序的开关有以下几条语句:
#define .....

typedef int Myfuncion(const char*,int);

static Myfunction myfunc;

static int foo2(char*, Myfunction*);

哪位能详细给解释一下啊?


typedef 为一个类型提供一个别名.
所以,Myfunction即是以const char* 和int为参数返回int型函数类型的一个别名.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-7 16:22:04 | 显示全部楼层
那语句 static Myfunction myfunc; 到底是什么意思,它等价于什么呢
这种typedef的用法有什么好处? 
再比如:
typedef void sighndlr_t(int);
sighndlr_t *signal(int sig, sighndlr_t *hndlr)
{ .....
  }

在这个函数中,sighndlr_t 是不是就单纯等价于void 呢 ?如果是的话,上面typdef语句中sighndlr_t的后面为什么要加(int)? 若不是的话,sighndlr_t 又等价于什么呢 ?
回复 支持 反对

使用道具 举报

发表于 2005-11-7 21:06:08 | 显示全部楼层
typedef int func(int);

定义了一个函数类型,主要用在回调中!
static Myfunction myfunc;
和static int myInt;是一样的,只是myfunc的类型是Myfunction,即一个函数指针!


typedef void sighndlr_t(int);
void foo(int i)
{

}

sighndlr_t pFunc = foo;


建议楼主看一下The C Program Language一书!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-8 16:40:46 | 显示全部楼层
谢谢大家帮助
回复 支持 反对

使用道具 举报

发表于 2005-11-19 16:08:05 | 显示全部楼层
函数指针
题目中的是。接受int 返回int
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表