函數指標使用示範範例(參考Linux-核心代碼)

來源:互聯網
上載者:User

標籤: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-核心代碼)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.