您的位置:首页 > 其它

STL 源码剖析 笔记 1: 函数指针和类型

2010-04-19 14:28 429 查看
P57 有如下一段代码:

static void (* set_malloc_handler(void (*f)()) )()
{
void (* old)() = __malloc_alloc_oom_handler;
__malloc_alloc_oom_handler = f;
return (old);
}


不像函数指针变量定义,也不像函数定义。

可以参考:http://blog.csdn.net/gibbon2000pro/archive/2008/12/11/3489219.aspx

下面对函数指针和类型做一个总结:

函数(指针)变量定义f:void
(*fv) (int)
函数(指针)类型定义FType:typedef
void(*FType) (int), 不能直接把void (*)(int)当做类型来使用。

返回函数的函数的定义:
1. 直接但古怪的形式如下
Void(*f(void (*f)()))(int)
函数为f
输入参数为void (*f)()
返回类型为void (*)(int),
但是不能直接把void (*)(int)当作类型,所以不能写成:
void (*)(int)f(void (*f)())这种形式,所以才会有上面这种古怪的定义。下面typedef来定义函数类型,可以得到一种比较容易理解的形式。
2. typedef的形式
typedefvoid (*FType)f(int)
FType func(FType f)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐