0
点赞
收藏
分享

微信扫一扫

C 语言回调函数的使用

  1. 函数指针的概念;
  2. 当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数;
  3. 为了维护类的完整性,我们用类的静态成员函数来做回调函数;
  4. 把调用者与被调用者分开。调用者不关心谁是被调用者;
  5. 可以做针对多种类型的排序功能函数、通知机制;
#include <stdio.h>
#include <stdio.h>

typedef struct DEV
{
int status;
void (*callBackFunc)();
}Dev;

Dev Device;

// struct Device
// {
// int status;
// void (*callBackFunc)(); // 指针,其分配空间确定
// }Device;

void addCallBackFunc(void (*userCallBackFunc)(int status))
{
Device.callBackFunc = userCallBackFunc;
}

void run()
{
Device.status = 10;
if(Device.status == 10)
{
if(Device.callBackFunc != NULL)
{
Device.callBackFunc(Device.status);
}
}
}

void callBack(int status)
{
printf("CallBack\n");
printf("status = %d\n", status);
}

void main(void)
{
addCallBackFunc(callBack);
run();
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int function(int a, int _)
{
return a;
}
int add(int a, int b)
{
return a + b;
}
int minus(int a, int b)
{
return a - b;
}
typedef int(*Q)(int, int);
// void func(int, int, Q P)
void func(int x, int y, int(*p)(int, int))
{
int a = p(x, y);
printf("%d\n", a);
}

int main()
{
func(1, 2, add);
func(10, 5, minus); // 多态
func(-1, NULL, function);
return 0;
}


举报

相关推荐

0 条评论