函式指標 編譯問題

2021-07-02 15:45:46 字數 719 閱讀 4114

這是main.c
#includevoid func_main()

int main()

這是file_1.c

#includevoid func_file_1(void(*func)())

這是file_2.c

#includevoid func_file_2()

編譯結果如下

[root@fc3 test]# gcc file_1.c file_2.c main.c      

main.c: in function `func_main':

main.c:6: error: `func_file_2' undeclared (first use in this function)

main.c:6: error: (each undeclared identifier is reported only once

編譯器在編譯的時候,並不知道

func_file_1(func_file_2); 中的func_file_2是函式,還是變數,所以會報錯。 這時候解決的辦法是,增加乙個file_2.h檔案,宣告

void func_file_2(); 為函式,這樣就可以編譯並執行成功。

函式指標引數問題

這一則是關於函式指標引數的。我們經常犯下面這樣的錯誤。void getpointer char p int main 在上面 中,最終會產生error。主要是因為在main函式中,指標p始終都是nullptr空指標。當我們使用函式指標引數時,我們雖然傳入了乙個指標引數p,但是,在函式getpoint...

c 函式指標引用問題

定義了乙個名字叫p的函式,它接收兩個int型別的引數和乙個指向int的指標 位址 引數,並返回乙個int引數 定義了乙個名字為p的指標 位址 它所指向的函式名字可以用 p表示,該函式接收兩個int型別的引數和乙個指向int的指標 位址 引數,並返回乙個int引數。此為指向int的指標 定義了乙個名字...

this指標訪問成員函式問題

class cnullpointcall int cnullpointcall m istatic 0 void cnullpointcall test1 void cnullpointcall test2 void cnullpointcall test3 intitest void cnullp...