c语言函数指针的多种赋值方法
在C语言中,函数指针是一种特殊的指针,它存储了一个函数的地址。通过函数指针,我们可以直接调用函数,而不需要知道函数的实际参数和返回类型。
以下是函数指针的多种赋值方法:
1. 直接赋值
int add(int a, int b) {
    return a + b;
}
int main() {
    int (*fp)(int, int) = add;  // 函数指针赋值
    int result = fp(2, 3);  // 通过函数指针调用函数
    printf("%d\n", result);  // 输出 5
    return 0;
}
在上面的代码中,我们定义了一个函数add,它接受两个整数参数并返回它们的和。然后,我们定义了一个函数指针fp,它指向add函数的地址。最后,我们通过fp调用add函数。
2. 使用函数指针作为参数传递
int add(int a, int b) {
    return a + b;
}
int main() {
    int (*fp)(int, int) = NULL;  // 初始化函数指针为NULL
    fp = add;  // 函数指针赋值
    int result = fp(2, 3);  // 通过函数指针调用函数
    printf("%d\n", result);  // 输出 5
    return 0;
}
在上面的代码中,我们将函数指针作为参数传递给另一个函数。在函数内部,我们将函数指针赋值为add函数的地址,然后通过该函数指针调用add函数。
3. 使用宏定义赋值
#define ADD(a, b) add(a, b)  // 宏定义赋值
int main() {
    int result = ADD(2, 3);  // 通过宏调用函数
    printf("%d\n", result);  // 输出 5
指针调用成员函数    return 0;
}
在上面的代码中,我们使用宏定义将add函数的调用包装起来,并将其命名为ADD。这样,我们就可以通过宏调用函数,而不需要知道函数的实际参数和返回类型。