什么是函数指针
数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。
如何使用函数指针
结构体print_ops分别定义两个函数指针
typedef struct{
// 定义函数指针a_func
void (*a_func)(void);
// 定义函数指针b_func
void (*b_func)(void);
}print_ops;
定义函数
// 第一个函数
void a_func(void)
{
printf("a_func\r\n");
}
// 第二个函数
void b_func(void)
{
printf("b_func\r\n");
}
main函数调用
int main()
{
// 定义结构体
print_ops print;
// 将结构体的函数指针指向对应的函数
print.a_func = a_func;
print.b_func = b_func;
// 调用函数
print.a_func();
print.b_func();
return 0;
}
整个代码示例
#include<stdio.h>
void a_func(void)
{
printf("a_func\r\n");
}
void b_func(void)
{
printf("b_func\r\n");
}
typedef struct{
void (*a_func)(void);
void (*b_func)(void);
}print_ops;
int main()
{
print_ops print;
print.a_func = a_func;
print.b_func = b_func;
print.a_func();
print.b_func();
return 0;
}