在 C 中跨模組呼叫函數:宣告函數:在目標模組的頭檔中宣告要呼叫的函數。實作函數:在原始檔中實作函數。連結模組:使用連結器將包含函數宣告和實作的模組連結在一起。呼叫函數:在需要呼叫的模組中包含目標模組的頭文件,然後呼叫函數。
在C 中跨模組呼叫函數
在C 中,當專案規模擴大時,將程式碼組織成不同的模組可以提高可維護性和可重複使用性。模組還允許在不同模組之間共享函數和變數。本教學將介紹如何跨模組呼叫函數,並提供一個實戰案例。
頭檔和原始檔
每個模組由兩個檔案組成:頭檔和原始檔。頭檔包含函數和變數的聲明,而原始檔包含它們的實作。
函數宣告
要讓一個模組中的函數可以從另一個模組中調用,必須在頭檔中宣告函數。函數宣告指定函數的傳回類型、名稱、參數和傳回類型。例如:
// moduleA.h int sum(int a, int b);
函數實作
在原始檔中,實作該函數。原始檔包含函數的實際程式碼。例如:
// moduleA.cpp int sum(int a, int b) { return a + b; }
連結模組
為了讓編譯器知道函數宣告和實作的位置,需要將模組連結在一起。這可以使用連結器完成,它將不同模組的目標檔案組合成一個可執行檔。在命令列中,使用以下命令連結模組:
g++ -o executable moduleA.o moduleB.o
實戰案例
#假設我們有兩個模組:moduleA
和 moduleB
。 moduleA
中有一個函數名稱為 greet()
,moduleB
中有一個函數名稱為 print()
。我們希望能夠從 moduleB
中呼叫 moduleA
中的 greet()
函數。
在moduleA.h
中宣告greet()
函數:
// moduleA.h void greet(string name);
在moduleA.cpp
中實作greet()
函數:
// moduleA.cpp void greet(string name) { cout << "Hello, " << name << "!" << endl; }
在moduleB.cpp
中,使用頭檔moduleA.h
並呼叫greet()
函數:
// moduleB.cpp #include "moduleA.h" void print() { greet("John"); }
連結兩個模組:
g++ -o executable moduleA.o moduleB.o
執行可執行檔:
./executable
輸出:
Hello, John!
以上是C++ 中如何在不同模組中呼叫函式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!