標籤:std ++ lin amp tail lib 指標 efi define
本文有xhz1234(徐洪志)編寫,轉載請註明出處。
http://blog.csdn.net/xhz1234/article/details/36635083
徐洪志
近期閱讀Linux-核心代碼。發現非常多地方使用了函數指標,遂自己寫一個示範範例程式。以供參閱:
#include <stdlib.h>#include <stdio.h>#define ADDONE 0#define MINUSONE 1#define S_OK 0#define S_ERR -1typedef int(*dir_fn)(int *data); //函數指標//實際函數1int add_func(int *data){(*data)++;return S_OK;}//實際函數2int minus_func(int *data){(*data)--;return S_OK;}//核心:依據參數cmd,擷取相應的funcdir_fn lookup_ctl(int cmd){dir_fn fn = NULL;switch(cmd){case ADDONE:fn = add_func;break;case MINUSONE:fn = minus_func;break;default:break;}return fn;}int main(void){int data = 100;int cmd = -1;dir_fn fn = NULL;printf("Input the cmd<0 add, 1 minus>\n");scanf("%d", &cmd);fn = lookup_ctl(cmd);fn(&data);printf("Result is: %d\n", data);return 0;}
本文有xhz123(徐洪志)編寫,轉載請註明出處。
徐洪志
函數指標使用示範範例(參考Linux-核心代碼)