在C语言中,函数指针是指向函数的指针变量。函数指针可以用于动态调用函数,以及作为回调函数的参数。以下是关于C函数指针和回调函数的基本概念和用法:

函数指针的声明和定义
#include <stdio.h>

// 声明一个函数指针类型
typedef int (*MathOperation)(int, int);

// 定义两个函数
int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int main() {
    // 声明和初始化函数指针变量
    MathOperation operation;

    // 将函数指针指向 add 函数
    operation = add;

    // 调用函数指针
    int result = operation(5, 3);
    printf("Result: %d\n", result);

    // 将函数指针指向 subtract 函数
    operation = subtract;

    // 再次调用函数指针
    result = operation(5, 3);
    printf("Result: %d\n", result);

    return 0;
}

回调函数

在C语言中,回调函数是通过函数指针作为参数传递给其他函数,以便在特定事件发生时调用。以下是一个简单的回调函数的例子:
#include <stdio.h>

// 定义回调函数类型
typedef void (*CallbackFunction)(int);

// 接受回调函数作为参数的函数
void performOperation(int a, int b, CallbackFunction callback) {
    int result = a + b;

    // 调用回调函数
    callback(result);
}

// 回调函数的实现
void displayResult(int result) {
    printf("Result is: %d\n", result);
}

int main() {
    // 将回调函数作为参数传递给 performOperation 函数
    performOperation(5, 3, displayResult);

    return 0;
}

在这个例子中,performOperation 函数接受两个整数和一个回调函数作为参数,然后在计算结果后调用回调函数。displayResult 函数是回调函数,用于显示计算结果。

函数指针和回调函数在C语言中常用于实现灵活的程序结构,尤其是在涉及到事件处理、回调机制等方面。


转载请注明出处:http://www.zyzy.cn/article/detail/13525/C 语言