C语言-函数指针 回调函数

函数指针:定义一个指针,然后将函数地址赋值给这个指针,指针就等同于函数。

#include <stdio.h>
 
int max(int x, int y)
{
    return x > y ? x : y;
}
 
int main(void)
{

    int (* p)(int, int) = & max; // &可以省略
    printf("最大的数字是: %d\n", p(2,3));

    return 0;
}

回调函数就是一个通过函数指针调用的函数:编写一个函数,另一个函数可以用这个函数当参数。下面中excutef就是回调函数。

#include <stdio.h>
#include <stdlib.h>

int max( int x, int y )
{
	return(x > y ? x : y);
}


int excutef( int (*func)( int, int ), int arga, int argb )
{
	return( (*func)(arga, argb) );
}


int main( void )
{
	printf( " %d\n", excutef( max, 1, 2 ) );

	return(0);
}

把函数指针装入数组,然后调用:

#include <stdio.h>

int max(int x, int y)
{
    return x > y ? x : y;
}

int min(int x, int y)
{
    return x < y ? x : y;
}

int main(void)
{
    int (*p[2])(int, int)={&max,&min};
    printf("%d   %d \n", p[0](2,3),p[1](2,3));
    return 0;
}

猜你喜欢

转载自blog.csdn.net/x1131230123/article/details/106507086