1. 程式人生 > >C語言結構體定義函式指標的簡單高效的使用例子

C語言結構體定義函式指標的簡單高效的使用例子

對於大型專案來說,struct的使用會使整個程式碼更加簡約,閱讀起來和寫起來都更加簡便,以後就要多嘗試這種用法了。下面是一個簡單例子,可以參考一下。

#include <stdio.h>
#include <stdlib.h>


int fun(int flag,int size);
int add(int a,int b);
int multi(int a, int b);
int max(int a,int b);
int min(int a, int b);

//宣告結構體
struct function {
                int flag;//定義標誌
int (*func)(int a, int b);//定義函式指標 }; //設定結構體buf對應flag值,函式 struct function buf[] = { {0x80,add}, {0x81,multi}, {0x82,max}, {0x83,min} }; int add(int a,int b) { return a+b; } int multi(int
a, int b) { return a*b; } int max(int a,int b) { return a > b ? a : b; } int min(int a, int b) { return a < b ? a : b; } //函式,輸入flag值,buf大小,由flag值獲得對應函式進行計算 int fun(int flag,int size) { int result; int i; for(i = 0 ; i < size ; i++) { if(flag == buf[i].flag) { result = buf[i].func(3
,5); } } return result; } int main() { int addnumber,mulnumber,maxnumber,minnumber; addnumber = fun(0x80,4); printf("addnumber = %d\n",addnumber);//8 mulnumber = fun(0x81,4); printf("mulnumber = %d\n",mulnumber);//15 maxnumber = fun(0x82,4); printf("maxnumber = %d\n",maxnumber);//5 minnumber = fun(0x83,4); printf("minnumber = %d\n",minnumber);//3 return 0; }