在結構體中使用函式指標的例子

2021-10-18 21:56:58 字數 883 閱讀 8500

void

menu11

(void);

void

menu12

(void);

void

menu21

(void);

typedef

struct

table;

table table[3]

=,,,

};void

setup()

void

loop()

}

以下是**分析

typedef

struct

table;

定義乙個結構體,裡面包含了乙個函式指標變數void (*operation)(void);

operation是乙個指向函式的指標。

table table[3]

=,,,

};

然後定義乙個結構體陣列,每乙個陣列都是乙個結構體,最後的menu11,menu12,manu21都是函式的名字,因為函式的名字就是函式的位址。

void

loop()

}

table[i].operation();這裡的i在0,1,2之間變化。程式每次執行到這裡,會把table[i].operation對應的menu11,menu12,menu21函式執行一遍。

執行的結果是在串列埠監視器裡面顯示:

這樣做的好處是,只需要改變變數i的值就能執行不同的函式。比如運用到顯示屏的重新整理等等。

指標在結構體中的使用

結構體的定義如下所示,struct為結構體關鍵字,tag為結構體的標誌,member list為結構體成員列表,其必須列出其所有成員 variable list為此結構體宣告的變數。struct tag variable list 在一般情況下,tag member list variable li...

在C 中結構體為函式引數的例子

將乙個結構體變數中的資料傳遞給另乙個函式,有下列3種方法 1.用結構體變數名作引數。一般較少用這種方法。2.用指向結構體變數的指標作實參,將結構體變數的位址傳給形參。3.用結構體變數的引用變數作函式引數。下面通過乙個簡單的例子來說明,並對它們進行比較。例7.5 有乙個結構體變數stu,內含學生學號 ...

結構體中使用string

1.malloc只是負責申請一塊記憶體,沒有任何其他動作。2.直接宣告結構體或者new 乙個結構體指標,會呼叫預設建構函式。如果結構中包含類,同樣會呼叫成員類的預設建構函式。3.程式中的記憶體錯誤是因為使用malloc分配乙個結構體內存,但是string是乙個類。並沒有呼叫string的建構函式,所...