--------------------------------------------------------------------------------main.c------------------------------------------------------------------------------------
#include<stdio.h>
#include<string.h>
#include"main.h"
DO_max *p_fun;
void maxfunc(int *a,int n)
{
int i=0,max=0;
for(i=0;i<n;i++)
{
if(a[i]>=max)
{
max = a[i];
}
}
printf("the max=%d\n",max);
}
void dofunc(int *a,int n,DO_max *m_func)
{
p_fun = m_func;
p_fun(a,n);
}
int main()
{
int a[]={1,11,13,18,98};
dofunc(a,5,(void *)maxfunc); //dofunc(a,5,maxfunc); 也是可以的,函数名 代表函数的入口地址
return 0;
}
-------------------------------------------------------------------------------main.h----------------------------------------------------------
#ifndef __MAIN_H__
#define __MAIN_H__
typedef void (DO_max)(int *a,int n);
#endif