標籤:

C語言簡單工廠模式

C語言簡單工廠模式

來自專欄基礎演算法筆記10 人贊了文章

實現一個簡單的工廠,實現對原始報文按照指定條件處理,輸出處理後的新報文.

思路:在工廠函數中傳入回調函數實現.

回調函數就是一個通過函數指針調用的函數。

如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。

回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用於對該事件或條件進行響應。

參考代碼:

root@gt:/home/temp# ./a.out TCP 報文處理...UDP 報文處理...ICMP 報文處理...root@gt:/home/temp# vim mode.croot@gt:/home/temp# cat mode.c #include <stdio.h>void tcp_process(char* pdata,int len){ printf("TCP 報文處理...
");}void udp_process(char* pdata,int len){ printf("UDP 報文處理...
");}void icmp_process(char* pdata,int len){ printf("ICMP 報文處理...
");}char* my_packet(char* raw_packet,int len,void (*p_func)(char*,int)){ p_func(raw_packet,len); return raw_packet;}int main(){ char* raw_packet = NULL; int len = 0; char* tcp_packet = my_packet(raw_packet,len,tcp_process); char* udp_packet = my_packet(raw_packet,len,udp_process); char* icmp_packet = my_packet(raw_packet,len,icmp_process); return 0;}

推薦閱讀:

最大子數組問題
快手x清華即日啟動大數據挑戰賽,60萬大獎懸賞你的最佳解決方案
構建乘積數組
這裡有一種日干支演算法。
年干支推演算法

TAG:演算法 |