關於c語言不同檔案之間直接函式介面引用的簡介

2021-06-28 05:25:30 字數 838 閱讀 2363

在工作中,很多情況下是當前正編輯的a程式的函式介面中需要呼叫到b檔案內部定義的函式介面,

通常情況下我們有如下兩種處理方式:

1. 將b檔案中a用到的b檔案的函式介面放置在b.h檔案中,a函式所在檔案引用到b.h檔案即可;

2. 就是直接在a所在的檔案中用:extern func();宣告引用。

一般情況下,為了程式的刻度性選用第一種處理方式,但是也不是所有的情況第一種都適用,

比如:在a函式介面中引用到的b檔案的函式介面用到了非b或者b.h檔案定義的結構體等情況,

這時,若在b.h中宣告引用到的函式介面,就會提示你用到了未定義或未知型別的資料結構,

然而當你將包含這個資料型別的結構時,又可能會出現其他的一些錯誤,比如未知的型別宣告或使用,

具體的例子講解如下

方案 1:

curr.c

struct studentstu;

func a()

b.c 

b(int m, int n)

c(stu stu)

b.hextern b(int m, int n);

extern c(stu stu);

方案2:

curr.c

struct studentstu;

extern b(int m, int n);

extern c(stu stu);

func a()

b.c 

b(int m, int n)

c(stu stu)

像上面的這種情況,就是和方案2,因為stu型別是在a.c檔案中定義,而b檔案中又無法引用到這個結構,多以最好的方法就是按照方案2操作比較節省精力。

c 工程內不同檔案的函式呼叫

乙個工程裡只能有乙個main函式,不同檔案的函式之間可以相互呼叫,寫個頭檔案就可以 下面舉個例子介紹 main.cpp include include trytry.h 包含的標頭檔案 using namespace std int hello int main int hello try.cpp ...

golang 相互引用 Go 不同檔案之間的引用

同乙個包裡面,不同檔案之間,不需要 import,直接用就好。不同包的話,需要引用包,只能使用大寫字母開頭的方法 變數 等等,小寫子母開頭的只能包內使用。簡單來說 大寫字母開頭的變數,方法暴露給其他包用的,包內的話可以隨便引用 示例 main.go package main import fmt f...

gcc編譯位於不同檔案下的 c檔案。

我在day2檔案下建立了乙個main.c函式,然後乙個add資料夾,乙個sub資料夾。其中add檔案下有add int.c,add float.c,add.h 然後在sub資料夾中有sub int.c,sub float.c,sub.件。include include add.h include s...