解析SGI STL 函数static void (* __set_malloc_handler(void (*__f)()))()

这篇博客介绍了函数指针的概念,通过实例展示了如何使用函数指针,并详细解析了SGI STL中的__set_malloc_handler函数,强调该函数用于设置内存分配处理函数。
摘要由CSDN通过智能技术生成

首先知道什么是函数指针:

函数指针是一个指针,不是函数,没有办法调用,它指向的那个函数才能被调用例如

  1 #include <iostream>
  2 
  3 using std::cout;
  4 using std::endl;
  5 
  6 void display()
  7 {
   
  8     cout << "display()" << endl;
  9 }
 10 
 11 int main()
 12 {
   
 13     void (*p) ();//这是一个函数指针,它是一个指针变量,它的变量名是p, 它可以指向一个返回值为void, 参数为void的函数
 14     p = display;
 15     p();
 16                                                                                                                                                                               
 17     return 0;
 18 }      

运行结果:
在这里插入图片描述

所以,函数也是一种类型,类似于int; 下面是一个例子

  1 #include <iostream>                                                                                                                                                           
  2 
  3 using std::cout;
  4 using std::endl;
  5 //函数也是一种类型
  6 
  7 //这里定义了一个函数类型,名字叫做FunctionType, 类似于int,
  8 typedef void(*FunctionType) ();
  9 
 10 void display()
 11 {
   
 12     cout << "display()" << endl;
 13     }
 14     
 15 int main(void)
 16 {
   
 17     //定义了一个变量名,叫做f,这个f是一个函数类型,它可以用一个函数名来初始化,然后可以调用
 18     FunctionType f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值