# include <stdio.h>
// Demo来自:OD官网 http://ollydbg.de/Tut_rtr.htm
void f1() {printf("f1\n");}
void f2() {printf("f2\n");}
void f3() {printf("f3\n");}
/*
函数数组:
含义:一组指向函数入口地址的变量,类似于虚函数表调用方式(PS: 由小见大的看PE文件导入导出表使用的是结构体指针变量数组,不是简单数组,但总体思想也一样)
其中变量的类型:函数指针类型
数组名类型:同其中变量的类型
用函数变量调用函数:函数指针变量()
函数指针变量:指向函数的指针变量,
定义方式: 数据类型 (* 变量)(), 如果变量是数组,那直接void (*num[n])() 类型,表示一组变量
*/
void (*f[3])()={f1,f2,f3};
int main(void)
{
for (int i =0; i < 3; i++){
f[i]();
}
getchar();
return 0;
}
Output: