编译环境:GCC
示例说明:定义三个参数为void返回值为void的函数;(函数)
定义三个指向void型参数返回值为void的函数指针;(指针)
定义一个保存指向void型参数返回值为void的函数指针的数组;(数组)
给函数指针赋值、给函数指针数组赋值;
通过函数指针调用函数、通过函数指针数组调用函数;
p_arry+1含义:数组中的首元素;
*(p_arry+1)含义:数组中的首元素中的内容,当然其中的内容就是一个函数指针;
(*(p_arry+i))() 含义:调用数组中函数指针指向的函数;等价于p1();
#include "stdio.h"
void fun1(void)
{
printf("fun1 \r\n");
}
void fun2(void)
{
printf("fun2 \r\n");
}
void fun3(void)
{
printf("fun3 \r\n");
}
int main()
{
int i=0;
void (*p1)(void)=NULL;
void (*p2)(void)=NULL;
void (*p3)(void)=NULL;
void(*p_arry[3])(void)={NULL,NULL,NULL};
p1=fun1;
p2=fun2;
p3=fun3;
p_arry[0]=p1;
p_arry[1]=p2;
p_arry[2]=p3;
for(i=0;i<3;i++)
{
(*(p_arry+i))();
}
printf("*************************\r\n");
p1();
p2();
p3();
return 0;
}