跳转至

函数指针

定义

int add(int a, int b) { return a + b; }
int sub(int a, int b) { return a - b; }

int (*op)(int, int);   // 函数指针声明
op = add;
printf("%d", op(3, 2)); // 5

回调函数

void calc(int (*fn)(int, int), int x, int y) {
    printf("result: %d\n", fn(x, y));
}

calc(add, 10, 5);  // 15
calc(sub, 10, 5);  // 5

函数指针在嵌入式中断服务程序的注册中非常常见。