回调函数的使用

使用例子

#include

int Callback_1(int x) // Callback Function 1
{
    printf("Hello, this is Callback_1: x = %d ", x);
    return 0;
}

int Callback_2(int x) // Callback Function 2
{
    printf("Hello, this is Callback_2: x = %d ", x);
    return 0;
}

int Callback_3(int x) // Callback Function 3
{
    printf("Hello, this is Callback_3: x = %d ", x);
    return 0;
}

int Handle(int y, int (*Callback)(int))
{
    printf("Entering Handle Function. ");
    Callback(y);
    printf("Leaving Handle Function. ");
}

int main()
{
    int a = 2;
    int b = 4;
    int c = 6;
    printf("Entering Main Function. ");
    Handle(a, Callback_1);
    Handle(b, Callback_2);
    Handle(c, Callback_3);
    printf("Leaving Main Function. ");
    return 0;
}

结果

Entering Main Function.
Entering Handle Function.
Hello, this is Callback_1: x = 2
Leaving Handle Function.
Entering Handle Function.
Hello, this is Callback_2: x = 4
Leaving Handle Function.
Entering Handle Function.
Hello, this is Callback_3: x = 6
Leaving Handle Function.
Leaving Main Function.

2、应用2

#include 

typedef void(*Callback)(void *argv);

void Echo_Info(const char *msg, Callback fn)
{
	if(NULL == msg)
	{
		printf("msg = [null]\n");
		return ;
	}

	if(NULL == fn)
	{
		printf("callback function is not defined!\n");
		return ;
	}

	fn((void *)msg);
}

void Echo_Data(void *msg)
{
	if(NULL == msg)
	{
		printf("msg = [null]\n");
		return ;
	}
	printf("msg = %s\n", (char*)msg);
}

int main(int argc, char const *argv[])
{
	const char *msg = "hello world";
	Echo_Info(msg, Echo_Data);
}


运行结果

msg=hello world 

 

你可能感兴趣的:(C语言,开发语言)