回调函数的应用
VPP 协议组件提供了许多的函数接口供开发者调用,同时也提供了很多的回调函数接口需要我们去实现,而由协议栈内部来调用。说白了,回调函数就是一个函数指针,协议栈通过一个函数指针,指向我们注册给回调函数接口的函数,达到函数由我们实现,他们调用的目的。
下面举一个简单的例子,让大家有一个更直接的认识:
#include<stdio.h>// 声明函数指针typedef int (*operation)(int x,int y);// 定义函数指针变量operation operation_var = 0;// 定义回调函数接int pFun_callback(operation pCallback){if(0!=pCallback){operation_var = pCallback ;return 0 ;}return 1;}// 注册回调函数int add(int x,int y){return (x+y);}int sub(int x,int y){return (x>y? (x-y):(y-x));}int multiplication(int x,int y){return (x*y);}int main(int agrc,char *agrv[]){int a = 10, b = 15 ;int result ;if(!pFun_callback(add))result = (*operation_var)(a,b);printf("The value of result:%d\n",result);return 0;}