在c語言中一旦程式的功能複雜時,我們便會想到使用多個檔案來寫函式,即是在主函式(含有main()函式的.c檔案)中呼叫別的檔案的函式。而這裡的函式呼叫方式可以用2種方式來完成。
方式1:使用#include「***.x」直接將別的檔案的內容直接包含到主函式中。
方式2:使用extern 宣告外部檔案已經定義的函式。
這裡就先把這兩種方式的簡單栗子舉乙個。
(下面的所有**編輯和編譯執行都是使用vs2010完成的。)
方式1 栗子:
*注意:這裡的檔名是.h檔案
#include
void fun2()
#include
#include
//直接將fun.h的檔案包含(即內容複製)到main.c檔案中
#include "fun.h"
int main()
執行結果:
this is fun2.
this is main.
請按任意鍵繼續…
方式2 栗子:
*注意:這裡的檔名是.c檔案
#include
void fun2()
#include
#include
//外部函式的宣告語句,extern 只是標記這個函式別的檔案定義的
extern
void fun2();
int main()
執行結果:
this is fun2.
this is main.
請按任意鍵繼續…
說明:
說完這兩個栗子,下面我來詳細總結我對多檔案編譯問題的理解。主要介紹:
extern的用法
# include 包含檔案的問題
宣告和定義,什麼時候會出現重定義?
C語言多檔案編譯
學習c語言的時候,有時候前面寫的函式希望以後可以直接呼叫,而不用重寫。記錄上午學習的成果,希望對有同樣需求的新手有幫助 要在乙個原始檔中呼叫另乙個源文中的函式,需要先把那個函式包含進來即使用 include。例如 現需要在show.c中呼叫display 函式,可以將 分開寫在三個檔案中,分別是sh...
c語言中實現超連結(多檔案程式的編譯和連線)
乙個實用價值的c語言應用程式往往較大,需要劃分成不同的檔案,那麼如何把這些檔案編譯,連線成乙個統一的可執行的檔案並執行呢?c語言提供了編譯預處理 include 檔名 來實現 檔案包含 的操作,其特點是乙個原始檔可以將另外乙個原始檔的全部包含進來。預處理程式將 include語句所指的檔案 源程式 ...
Linux下面C語言多檔案編譯
首先開啟命終端 alt ctrl t 用vim編寫三個檔案main.c,stack.c,stack.h main.c include include stack.h void main stack.h typedef struct stack stack extern void push stack...