# 函数指针

/* 函数指针 */
#include <stdio.h>

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

int main(int argc, char *argv[])
{
    int (*a)(int, int); // 定义一个 返回值是 int,有两个参数分别是 int、int 类型的函数指针 a
    a = add;            // 让 a 指向函数 add
    int c = 0;
    c = a(5, 8);
    printf("c = %d\n", c);

    return 0;
}

# typedef 函数指针

/* typedef 函数指针 */
#include <stdio.h>

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

typedef int (*ADD)(int,int);    // 定义 ADD 为一种新的数据类型,该数据类型是一个指向某种函数的函数指针,这种函数是一个返回值是 int,有两个参数分别是 int、int 类型的函数

int main(int argc, char *argv[])
{
    ADD a;
    a = add;
    int c = 0;
    c = a(5, 8);
    printf("c = %d\n", c);

    return 0;
}

# 参考

typedef函数指针用法