STL源码剖析 -- 返回函数指针的函数

来源:互联网 发布:fanuc机器人编程手册 编辑:程序博客网 时间:2024/05/20 00:38

在STL中设置内存出错时调用的处理函数:

 

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

 

可知,set_malloc_handler函数名, void (*f)()函数参数, void (* )()返回类型,

 

转个简单的说明

比如你要声明一个函数,它带一个int参数,然后返回一个函数指针,指针类型为void (*)(int*, int, char); 函数的名字叫foo,怎么写呢,如果不用typedef,的确有点麻烦,像这样:
void (*foo(int))(int*, int, char);

用typedef 把返回的函数类型定义一下会符合更阅读习惯一点
typedef void (*ReturnFun)(int*, int, char);
ReturnFun foo(int);