Test Code
#include <stdio.h>
void funca(void){
printf("%s\n", __FUNCTION__);
}
void funcb(void){
printf("%s\n", __FUNCTION__);
}
void funcc(void){
printf("%s\n", __FUNCTION__);
}
typedef void(*FUNC)(void);
void main(void){
static FUNC funs[] = { funca, funcb, funcc };
int arr[10] = { 0 };
FUNC funItem = { funca };
printf("sizeof funcs:[%d]\n", sizeof(funs));
printf("sizeof arr:[%d]\n", sizeof(arr));
funs[1]();
funItem();
}
Test Result
sizeof funcs:[12]
sizeof arr:[40]
funcb
funca
Summary
Point1 C语言里面也可以尽量使用查表来取代switch case
Point2 注意sizeof 数组名的结果,对于计算数组大小有参考作用