編譯環境: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;
}