C語言中的多檔案編譯問題

2021-07-30 06:15:53 字數 1023 閱讀 8338

在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...