C中的函数指针

use*_*ser 3 c pointers function-pointers

如何在C中创建"函数指针"(和(例如)函数有参数)?

Joh*_*kin 15

http://www.newty.de/fpt/index.html

typedef int (*MathFunc)(int, int);

int Add (int a, int b) {
    printf ("Add %d %d\n", a, b);
    return a + b; }

int Subtract (int a, int b) {
    printf ("Subtract %d %d\n", a, b);
    return a - b; }

int Perform (int a, int b, MathFunc f) {
    return f (a, b); }

int main() {
    printf ("(10 + 2) - 6 = %d\n",
            Perform (Perform(10, 2, Add), 6, Subtract));
    return 0; }
Run Code Online (Sandbox Code Playgroud)


xcr*_*mps 5

    typedef int (*funcptr)(int a, float b);

    funcptr x = some_func;

    int a = 3;
    float b = 4.3;
    x(a, b);
Run Code Online (Sandbox Code Playgroud)