函数指针与回掉函数

函数指针的声明方法为:

返回值类型 ( *  指针变量名) ([ 形参列表]);
注1:“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = &func;


callback函数

#include<stdio.h>
typedef void (* FUNC_POINTER)(char *); 

// コーバック関数1
void callback1(char *s){
    printf("%s\n",s);
}

// コールバック関数2
void callback2(char *s){
    printf("[");
    printf("%s",s);
    printf("].\n");
}

// コールバック関数を呼び出す関数
void func(char *s,FUNC_POINTER p){
    // コールバック関数を呼び出す
    p(s);
}

int main(){
    FUNC_POINTER p;

    p = callback1;
    // コールバック関数1を呼び出す
    func("コーバック関数1",p);

    p = callback2;
    // コールバック関数2を呼び出す
    func("コーバック関数2",p);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值