对于想做C语言大型项目开发同学,结合上篇C语言模块化编程,会有很大帮助。
实现方法:回调函数,结构体里保存函数指针,具体看下面的代码:
#include <stdio.h>
//几个用于测试的函数
int max(int a, int b)
{
return a>b?a:b;
}
int min(int a, int b)
{
return a<b?a:b;
}
//结构体
struct func
{
int (*max)(int, int);//函数指针
int (*min)(int, int);
};
typedef struct func func; //添加别名
void init(func *data)
{
data->max = max;//初始化函数指针
data->min = min;
}
int main()
{
int a, b;
func test;
init(&test); //初始化,你可以说它是构造函数
a = test.max(100, 215);
b = test.min(64, 42);
printf("result:\nmax: %d\nmin: %d\n", a, b);
return 0;
}