C语言编程之回调函数学习

在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数)。回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。回调函数使用是必要的,在我们想通过一个统一接口实现不同的内容,这时用回调函数非常合适。

下面举一个C语言中回调函数的例子,说明回调函数之用法。

#include <stdio.h>

void print_min_value(int i, int j)
{
	int tmp = i;
	if(i>j) tmp = j;
	
	printf("print_min_value is called\n");
	printf("min value is:%d\n", tmp);
}

void print_max_value(int i, int j)
{
	int tmp = i;
	if(i<j) tmp = j;
	
	printf("print_max_value is called\n");
	printf("max value is:%d\n", tmp);
}

void call_then_back(int i, int j, void(*callback)(int, int))
{
	callback(i, j);
}

int main(void)
{
	int m = 2, n = 3;
	
	call_then_back(m, n, print_min_value);
	call_then_back(m, n, print_max_value);
	
	return 0;
}

运行结果:

print_min_value is called
min value is:2
print_max_value is called
max value is:3

Leave a Reply

Your email address will not be published. Required fields are marked *