程式設計結構體 小結一下設計思想 上次已經找到

2021-09-26 20:18:41 字數 1335 閱讀 6870

這是第二次遇到這種尷尬情況 記錄一下

case:我做了乙個結構體:

typedef struct

gk_usartbase_type ;

在自己的模組裡面是很好的

還有乙個思考過的函式:

void gk_usart_clear(gk_usartbase_type *myuart)

現在我遇到乙個事情:我希望外面的模組也可以呼叫這個函式 怎麼辦?

第一種 直接給出去 

第二種 就是自己呼叫自己 如下:

typedef struct

gk_usartbase_type ;

void gk_usart_clear(void *uart)

初始化的時候給他

uint8_t gk_usart_init(gk_usartbase_type *myuart,uint8_t usartid,uint8_t * buf)

myuart->clear = gk_usart_clear;

myuart->rxbuf=buf;

hal_uart_receive_it(myuart->huart, &myuart->one, 1);//開啟中斷接收 1個1個的接收// 對應 下文

__hal_uart_enable_it(myuart->huart,uart_it_idle);//開啟空閒中斷

__hal_uart_clear_idleflag(myuart->huart);

return 1;

}

這樣饒了一圈 最後呼叫是:

gk_usartbase_type *puart= gk_usart_read_obj(2);

puart->clear(puart);

現在我覺得我的思想需要公升級:

凡是結構體需要自己調自己的時候 可以新開乙個結構體!

開始吧!操作一下 絲般順滑

typedef struct

gk_usartbasefunction_type ;

gk_usartbasefunction_type gkuf,*puf;

void gk_usart_init(void)

現在呼叫:

gk_usartbase_type *puart= puf->read(2);

puf->clear(puart);

++++++++++++上次

這個也是分不清 你可以做2個結構體!!!乙個節點 + 乙個函式結構體

咧咧一下「漢語程式設計」

漢語程式設計 前幾年提出來,去年不知道什麼原因又鬧過一陣子。漢語程式設計到現在為止,給人的感覺就是 用漢語寫程式 但是,我感覺事情可能不是這麼簡單!中國人不會弱智到這個檔次。一門語言的精華不僅僅是語法的簡單 簡潔,這都是淺層次的。語言的精華在於編譯器的品質,高效 跨平台 可移植性 相容性等等。我們過...

咧咧一下「漢語程式設計」

漢語程式設計 前幾年提出來,去年不知道什麼原因又鬧過一陣子。漢語程式設計到現在為止,給人的感覺就是 用漢語寫程式 但是,我感覺事情可能不是這麼簡單!中國人不會弱智到這個檔次。一門語言的精華不僅僅是語法的簡單 簡潔,這都是淺層次的。語言的精華在於編譯器的品質,高效 跨平台 可移植性 相容性等等。我們過...

C 遊戲系列7 小結一下

更多見 c 遊戲系列目錄 c 遊戲系列 是在和2015級同學學習c 過程中,想找乙個應用背景而開始寫的,同時,也作為同學們的實踐專案,借這樣乙個連續的專案,即時體現學習到的知識點和技術,將正在學的內容和與當前不少同學有體會的應用 遊戲結合起來,這是一種獲得直接經驗的時候。開始時,沒有想到做成系列。隨...