C語言結構體封裝函式指標

2021-10-20 06:28:16 字數 1367 閱讀 9918

c語言結構體(struct)從本質上講是一種自定義的資料型別,只不過這種資料型別比較複雜,是由 int、char、float 等基本型別組成的。例如,在校學生有姓名、年齡、身高、成績等屬性,學了結構體後,我們就不需要再定義多個變數了,將它們都放到結構體中即可,如圖所示:

那麼我們怎麼用c語言的結構體來封裝函式api呢?

首先看看c++和c的區別及方法:

c++語言類中可以封裝函式,體現了模組操做的整體性,下面**便是c++語言對某個函式的封裝,這樣操作便於呼叫。

lass marlinserial //: public stream

marlinserial mserial; //例項化乙個物件

mserial.begin(9600);//設定串列埠的波特率為9600

那麼c語言是否可以實現這種方式呢?c語言結構體不能直接封裝函式,但可以通過封裝函式指標的方式來實現,具體方法如下:

首先看看結構體的基本使用及定義方法,也就是上面所說的定義不同的資料型別,如下所示:

typedef struct

serial_t;

void hs_register_usart_callback(uint8_t usart_x,void (*ptr)(uint8_t*,uint16_t),uint16_t buffsize,uint8_t remode);

void usart_config(uint8_t usart_x,uint32_t baud_rate);

void hs_usart_printf(uint8_t usart_x, const char *data,...);

void hs_usart_sendhex(uint8_t usart_x,uint8_t *data,uint16_t len);

ypedef struct

serial_t;/*api 操作結構體*/

注意:經過這兩步,雖然能直接呼叫不報錯,但是是否考慮過它們之間存在著怎樣的聯絡?很明顯是沒有的,所以還需要進行最重要的一步,也就是例項化:

/*api 函式初始化*/

serial_t serial =

;

結構體指標,C語言結構體指標詳解

結構體指標,可細分為指向結構體變數的指標和指向結構體陣列的指標。前面我們通過 結構體變數名.成員名 的方式引用結構體變數中的成員,除了這種方法之外還可以使用指標。前面講過,student1 表示結構體變數 student1 的首位址,即 student1 第乙個項的位址。如果定義乙個指標變數 p 指...

C語言結構體指標,函式指標的用法

學習一下,保證自己的基礎,邊學邊記錄是個很好的習慣,以後回頭來看看,就馬上能了解了 第乙個程式是 c語言結構體指標用法,包括malloc和free的用法 include stdafx.h include include using namespace std struct people int ma...

C語言 結構體指標

asp.net unity開發 net培訓 期待與您交流!一.結構體 1.什麼是結構體 當 乙個整體 由多個資料構成時,我們可以用陣列來表示這個整體,但是陣列內部的每乙個元素都必須是相同型別的資料。在實際應用中,我們通常需要由不同型別的資料來構成乙個整體,比如學生這個整體可以由姓名 年齡 身高等資料...