回调函数、递归函数、可重入函数

参考:http://blog.csdn.net/callmeback/article/details/4242260

1.什么是回调函数

回调就是一种利用函数指针进行函数调用的过程,使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作

2.回调函数的例子

#include <stdio.h>
void printWelcome(int len)
{
  printf("welcome\n", len);
}

void printGoodbye(int len)
{
  printf("goodbye%d\n", len);
}

void callback(int times, void (* print)(int))
{
  int i;
  for (i = 0; i < times; ++i)
  {
    print(i);
  }
  printf("I am in callback function!\n\n");
}
void main(void)
{
  callback(10, printWelcome);
  callback(10, printGoodbye);
  printWelcome(5);
}

 

3.递归函数

编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。

 

4.可重入函数

可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的

 

转载于:https://www.cnblogs.com/thinkinglife/p/5121683.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值