函数指针与回掉函数

来源:互联网 发布:linix mysql中文乱码 编辑:程序博客网 时间:2024/06/07 02:22

函数指针的声明方法为:

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


callback函数

#include<stdio.h>typedef void (* FUNC_POINTER)(char *); // コーバック関数1void callback1(char *s){    printf("%s\n",s);}// コールバック関数2void 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;}

0 0
原创粉丝点击