C語言之函式指標和二重函式指標

2021-09-24 23:21:21 字數 734 閱讀 1357

在分析uboot程式時發現乙個函式指標的用法,花了點時間研究一下。做個記錄。

先說一下函式指標的基本用法。如下

int init01(void)

typedef int (init_func1)(void); // 宣告一種函式型別

typedef int (*init_func2)(void); // 宣告一種函式指標型別

int (*init_func_p)(void); // 定義乙個函式指標變數

int main(void)

下面寫一下uboot的**,省略了一部分,大概如下

typedef int (init_fnc_t) (void);    //函式型別定義

init_fnc_t *init_sequence = ;

mian()

}}

首先宣告了函式型別。

定義陣列,陣列名為init_sequence,init_sequence是乙個init_fnc_t型別的指標陣列,

然後在函式中宣告了此型別函式的二重指標init_fnc_ptr。

init_fnc_ptr = init_sequence;賦值,陣列名init_sequence實際上也是乙個指標,那麼init_sequence可以理解為指向init_fnc_t型別指標的指標。

(*init_fnc_ptr)就是指向陣列內的函式指標,直接用於引用函式

C語言之辨別指標函式與函式指標

三.函式指標 四.總結 在c語言中,有時候我們對基本的概念很容混淆分不清楚,今天來區分一下函式指標,和指標函式,我是這樣區分的,看誰在後面本質就是什麼 指標函式就是定義乙個函式其返回值型別為乙個指標,如何來定義乙個指標函式 宣告格式 型別說明符 函式名 引數 int function int fun...

C語言之指標 陣列和函式

基本解釋 1 指標的本質是乙個與位址相關的復合型別,它的值是資料存放的位置 位址 陣列的本質則是一系列的變數。2 陣列名對應著 而不是指向 一塊記憶體,其位址與容量在生命期內保持不變,只有陣列的內容可以改變。指標可以隨時指向任意型別的記憶體塊,它的特徵是 可變 所以我們常用指標來操作動態記憶體。3 ...

C語言之指標 陣列和函式

文 楚雲風 基本解釋 1 指標的本質是乙個與位址相關的復合型別,它的值是資料存放的位置 位址 陣列的本質則是一系列的變數。2 陣列名對應著 而不是指向 一塊記憶體,其位址與容量在生命期內保持不變,只有陣列的內容可以改變。指標可以隨時指向任意型別的記憶體塊,它的特徵是 可變 所以我們常用指標來操作動態...