c語言中多個c檔案呼叫同一函式

2021-10-02 16:23:57 字數 917 閱讀 4972

已知:將函式定義放在乙個func.c檔案中。

func1(){}

func2(){}

func3(){}

方法1:main.c中直接包含func.c//該方法不好,因為無法在另一.c檔案中再#include "func.c",會導致函式二次定義。

#include "func.c"

這種方法表明.c檔案也是可以使用#include 包含的,但我們一般不這麼用。

方法2:將函式的宣告放在同一func.h中//可用

func1();

func2();

func3();

在main.c中包含標頭檔案即可:

#include "func.h"

方法3:在main.c中新增函式宣告://可用

main.c中:

extern func1();//extern  字首也可以不寫,寫的目的是指明在該函式在別的.c檔案中。

extern func1();

extern func3();

注意一種特殊情況:

int num =100;//c檔案裡定義了乙個全域性變數

void myfunc()

extern void myfunc();

void main()

如上,我們在fun.c檔案中定義了函式myfunc, 和乙個全域性變數num;(區域性變數我們很好理解,因為跟著函式走的)

我們想在main.c中的main函式中呼叫myfunc,此時我們只需要在檔案中宣告extern void myfunc();即可。

而不需要再去管fun.c中的全域性變數num。(不需要再宣告全域性變數了)

c語言中的函式呼叫

今天是我第一天寫部落格,最近一直在看c語言的書。函式呼叫是乙個非常重要的知識點,相當於各個模組的 介面 當然c語言裡沒有介面的說法。c語言中實參和形參要麼是基本的資料型別或者是結構體型別,當然也可以指標 位址 由於在c語言規定陣列名就是乙個位址,因此也可以把陣列規定到指標的行列。另外,不要天真的以為...

C語言中呼叫Lua

c語言和lua天生有兩大隔閡 一 c語言是靜態資料型別,lua是動態資料型別 二 c語言需要程式設計師管理記憶體,lua自動管理記憶體 為了跨越世俗走到一起,肯定需要解決方案。解決第一點看上去比較容易,c語言中有union。可是第二點呢?萬一c語言正引用著lua的乙個值,lua自動釋放了怎麼辦?所以...

C語言中函式宣告與呼叫問題

假如函式在呼叫它之前定義可以不用宣告 實際上,如果在函式呼叫前,沒有對函式作宣告,則編譯系統會吧第一次遇到的該函式的形式 函式定義或者函式呼叫 作為函式的宣告,並將函式預設值型別認為int型www.cppcns.com 比如有您調gsecpxij用的是void max int a,int b www...