C回調函數

下面是驗證回調函數原理的代碼,他們在windows和linux下均驗證通過

#include <stdio.h>
#include <stdlib.h>

//int demo(char *p)
//CallBackFun是一個函數指針,它指向類似於demo一樣的函數(返回值和形參一致)
typedef int (*CallBackFun)(char *p); 

//函數A
int Afun(char *p)
{
    printf("Afun 回調打印出字符%s!\n", p);   
    return 0;
}

//函數C
int Cfun(char *p)
{   
    printf("Cfun 回調打印:%s, Nice to meet you!\n", p);   
    return 0;
}

//形參中帶有函數指針
int call(CallBackFun pCallBack, char *p)
{   
    printf("call 直接打印出字符%s!\n", p);   
    pCallBack(p);   
    return 0;
}

//形參中帶有函數指針
int call3(char *p, CallBackFun pCallBack)
{
    printf("--------------\n", p);   
    pCallBack(p);
}

int main(int argc, char **argv)
{   
    char *p = "hello";
    call(Afun, p);   
    call(Cfun, p); 

    call3(p, Afun);   
    call3(p, Cfun);

    system("pause");
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章