在分析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 陣列名對應著 而不是指向 一塊記憶體,其位址與容量在生命期內保持不變,只有陣列的內容可以改變。指標可以隨時指向任意型別的記憶體塊,它的特徵是 可變 所以我們常用指標來操作動態...