函式指標陣列實現對於多個相似功能函式的呼叫

2021-10-20 06:15:58 字數 775 閱讀 4224

1、函式指標陣列使用筆記

函式名就是該函式的位址,可以通過指標進行定址呼叫

//應用場景:對於需實現的類似功能比較多的情況,使用這種陣列進行分類把類似的功能的函式通過指標的形式做成乙個陣列集合。

//然後通過乙個陣列的形式呼叫,通過下標區分不同的函式實現的功能,switch-case一次呼叫實現對於該類的函式不同的呼叫,避免了重複的呼叫,節省了大量的空間。

//通過switch case的形式實現對應函式的呼叫,傳遞過來的是一串串口的協議數字 找到對應的字段倆呼叫對應的函式。不需要遍歷就可以實現函式的呼叫,採用的是一一對應的方式。

//如果沒有很好的一一對應的關係就採用遍歷的方式實現函式的呼叫

//組播的成員表在驅動部分就是這樣儲存的。 標紅的地方對應的是函式指標陣列的下標,一一對應的關係

例如:00 01 02 38 47 47 47 每個數字代表的是乙個含義

有兩個地方是需要注意的:

1、函式指標陣列還是結構體陣列,取決於需要實現的功能的情況。

2、儲存的方式,陣列還是鍊錶,取決於多少。

3、一一對應還是遍歷,實際情況而論

//呼叫的地方

process_wifi_to_zc_cmd_zigbee[cmd2](rbuf, len);

//結構體該可以以鍊錶的形式儲存起來

//註冊的地方 需要實現的函式放到函式指標陣列裡面

//把需要註冊進去的函式在這裡註冊使用

void (process_wifi_to_zc_cmd_zigbee[18])(int8u, int8u) =

7 7函式實現指標字元陣列的排序

說明乙個可存放10個字串的字元陣列,個字串有使用者輸入 假設使用者輸入的字串長度上限為32 陣列中每個元素的大小根據使用者輸入串的實際大小動態確定。編乙個函式對陣列進行排序。排序時無需交換兩個串,只交換他們的指標即可 c 實現 include include 因為編譯器的問題,所以用getch 顯示...

C 語言實現指向函式的指標陣列例項

include include using namespace std class time time settime int h,int m,int s time sethour int h time setminute int m time setsecond int s 設定秒 int get...

利用指向類成員函式的指標陣列,實現更加隱蔽的介面

include stdafx.h include using namespace std class widget void select int i,int val int count private void f int val void g int val void h int val voi...