C语言钩子函数

446 阅读1分钟
#include "stdio.h"
int (* g_pFun) (int x, int y);  /*函数指针*/
int Plat(int a, int b)
{
    int r;
    r = g_pFun(a, b);
    printf("%d\n", r);
    return 0;
}
//另外,平台部分再提供一个注册函数:
int RegFun(int (*pFun)(int x, int y))
{
    g_pFun = pFun;
    return 0;
}
//应用模块完成具体的函数的功能:
int Max(int x, int y)
{
    if(x > y)
    {
        return x;
    }
    else
    {
        return y;
    }
}
int Min(int x, int y)
{
    if (x < y)
        return x;
    else
        return y;
}
int main(int argc, char const *argv[])
{
    /* code */
    RegFun(Min);
    Plat(10,15);
    RegFun(Max);
    Plat(20,25);
    return 0;
}