c語言中檔案a h 和檔案a c有什麼關係

2021-05-28 14:30:33 字數 4987 閱讀 1460

1樓:匿名使用者

"一般情況下,a.h放的是函式或變數的宣告,而a.c放的是定義如a.

hexternintx;//宣告一個整形的x變數externinttest();////宣告一個test()函式而a.c中intx=100;//定義一個x變數inttest()//定義一個test()函式{}然後,其它的.c或#include""a.

h""來使用a.c中的x和test()追問那這樣使用是否合法呢?

檔案a.h:

void function1();

檔案a.c:

#include ""a.h""

void function1() {}

void function2() {}

檔案b.c

#include ""a.h""

int main(void) 補充int main(void) "

c語言中 .c和.h有什麼區別

2樓:

c語言的原始檔分為兩種:

1、.c檔案,以c為副檔名,一般儲存具體功能的實現;

2、.h檔案,稱為標頭檔案,一般儲存型別的定義,函式的宣告等。

通常,標頭檔案被.c檔案包含,使用#include 語句。

但值得注意的是,這只是一種約定,而非強制。

事實上,將宣告寫在.c檔案,比如a.c,然後#include "a.c"

同樣是合法的。

而把.h檔案,內部寫入函式實現,再在.c檔案中引用,也是編譯器允許的。

所以,.c與.h的區分,本質上是一種約定。一名合格的軟體開發人員,也要遵循這個約定,增加**的可讀性和維護性。

3樓:蝌蚪聰明頂呱呱

.c是 c 語言程式檔案,是可以被編譯然後執行的檔案;

.h 字尾是 c 語言程式庫的檔案,是可以在 c 語言程式中被包含,但是不能編譯並執行的檔案。

c語言包含標頭檔案的字尾「.a .h」等等是什麼意思啊?

4樓:匿名使用者

a:archive.歸檔的意思,是把很多庫打包形成的,裡面有函式可以用

.h是標頭檔案。裡面宣告瞭一些常量和函式,包含之後可以使用那些常量和函式,

大致就這樣了。

100個字快滿了。

c語言中,再對檔案的操作模式中,a和a+、w和w+、r和r+有什麼區別?

5樓:傲笑紅塵

這是檔案操作中的mode應用問題。

fopen(開啟檔案)

相關函式

open,fclose

表標頭檔案 #include

定義函式 file * fopen(const char * path,const char * mode);

函式說明 引數path字串包含欲開啟的檔案路徑及檔名,引數mode字串則代表著流形態。

mode有下列幾種形態字串:

r 開啟只讀檔案,該檔案必須存在。

r+ 開啟可讀寫的檔案,該檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

上述的形態字串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。不過在posix系統,包含linux都會忽略該字元。由fopen()所建立的新檔案會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此檔案許可權也會參考umask值。

返回值 檔案順利開啟後,指向該流的檔案指標就會被返回。若果檔案開啟失敗則返回null,並把錯誤**存在errno 中。

附加說明 一般而言,開檔案後會作一些檔案讀取或寫入的動作,若開檔案失敗,接下來的讀寫動作也無法順利進行,所以在fopen()後請作錯誤判斷及處理。

範例#include

main()

希望可以幫到你!

6樓:多想失去

r 開啟只讀檔案,該檔案必須存在。r+ 開啟可讀寫的檔案,該檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。

若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。a+ 以附加方式開啟可讀寫的檔案。

若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

補充:a和a+、w和w+、r和r+是mode幾種形態字串。

7樓:匿名使用者

a和a+如果指定的檔案不存在,會出錯,而不會建立新檔案

8樓:匿名使用者

物理科學巨人霍金去世,您身體受困於輪椅,思想卻能遨遊宇宙,希望您在那邊能身體和思想都能真正自由翱翔,讓時間永留簡史吧,讓黑洞發出「聲響」吧。

r:以只讀的方式開啟文字檔案,檔案必須存在;

w:以只寫的方式開啟文字檔案,檔案若存在則清空檔案內容從檔案頭部開始寫,若不存在則根據檔名建立新檔案並只寫開啟;

a:以只寫的方式開啟文字檔案,檔案若存在則從檔案尾部以追加的方式開始寫,檔案原來存在的內容不會清除(除了檔案尾標誌eof),若不存在則根據檔名建立新檔案並只寫開啟;

r+:以可讀寫的方式開啟文字檔案,檔案必須存在;

w+:以可讀寫的方式開啟文字檔案,其他與w一樣;

a+:以可讀寫的方式開啟文字檔案,其他與a一樣;

若開啟二進位制檔案,可在後面加個b註明,其他一樣,如rb,r+b(或rb+)。

再次緬懷霍金。

c語言中函式實現的.c檔案include函式宣告的,h檔案有什麼作用?

9樓:匿名使用者

標頭檔案是給編譯器用的

編譯器在編譯c檔案的時候,需要對其中的函式呼叫做檢查,以便知道函式引數個數、型別、返回值等是否正確。編譯的順序是按照**書寫從前到後進行的,如果你的函式寫在前面,則編譯到呼叫這個函式的語句的時候,由於已經認識了這個函式,所以也沒問題,但是,有時候我們會把函式的實現寫在呼叫語句的後面,這時候就需要在前面書寫個函式的宣告,告訴編譯器我後邊有個某某型別的函式。。如果把大量的宣告寫在 .

c **裡,c檔案也會比較亂,所以用 .h 檔案來儲存這些宣告,.c 檔案要用這些宣告的時候,只需要 #include 即可,如果是系統函式,用 #include ,如果是自定義標頭檔案,則用 #include "***.

h" 。

你的**中 a.c 沒有必要包含 a.h ,因為並沒有呼叫該函式而是該函式的實現,但 main 函式所在的 main.c 用到了 add ,所以必須包含 a.h

10樓:硬虎虎

c語言在演繹的時候,會首先將include的檔案的內容複製到 #include "...h" 這裡(可以這麼理解)。所以上面的主程式其實就是:

#include

int add(int x, int y);

int add(int x, int y)int main()

引入標頭檔案,就是為了**的複用和簡潔的描述。

.h主要用於函式的宣告,.c主要是實現的程式體和主程式。

11樓:澤澤么兒

是一樣的都是為了直接呼叫 int add(int x, int y);

c語言有關的.a檔案是什麼檔案?是c的庫檔案嗎?生成的.a檔案如何開啟看函式?

12樓:匿名使用者

解決方法很多!.a是靜態連結庫檔案,一般會和一個標頭檔案配合提供給使用者使用

想看函式的話必須通過其配套的標頭檔案看,想看函式實現的話除非反編譯,否則沒法直接看到的

c語言中的標頭檔案cstdio中的c與stdio.h中.h有什麼區別?

13樓:匿名使用者

stdio.h是先到你程式所在資料夾找標頭檔案,若沒找到再去vc或tc安裝目錄下找標頭檔案

只到vc或tc安裝目錄下去找標頭檔案

stdio.h他是c語言中一個庫函式,在他的左右兩邊加「」和<>都是一樣的,在vc++環境中,電腦都能識別,這兩種寫法不同,但要表達的意思是一樣的。舉個簡單的

#include#include"stdio.h"void main()void main()}   這兩個c語言程式輸出的都是c yu yan這幾個字母,這兩個「」和<>你喜歡哪一個你就寫哪一個,所表達的意思都是一樣的。

c語言檔案關閉與開啟中,r +,a+ 有什麼區別

14樓:巭奧特曼

r 只讀 為輸入開啟一個文字檔案(檔案必須存在)w 只寫 為輸出開啟一個文字檔案(如沒有檔案,則新建)

a 追加 向文字檔案尾新增資料(如沒有檔案,則新建)rb 只讀 為輸入開啟一個二進位制檔案wb 只寫 為輸出開啟一個二進位制檔案ab 追加 向二進位制檔案尾新增資料r+ 讀寫 為讀寫開啟一個文字檔案(檔案必須已經存在)w+ 讀寫 為讀寫建立一個新的文字檔案a+ 讀寫 為讀寫開啟一個文字檔案(讀寫指標定位在最後)rb+ 讀寫 為讀寫開啟一個二進位制檔案wb+ 讀寫 為讀寫建立一個新的二進位制檔案ab+ 讀寫 為讀寫開啟一個二進位制檔案

15樓:匿名使用者

r+只是讀,不能寫

a+是寫,追加,不會刪掉之前的內容

c語言中檔案指標能不能作為引數傳遞

1.指標完全可以作為函式的引數進行傳遞,其實在c中,陣列作為引數傳遞,跟指標作為引數傳遞都很類似的,指標傳的是該指標指向的地址,而陣列引數則是將該陣列的首地址傳遞過去。2.檔案指標 在c語言中用一個指標變數指向一個檔案,這個指標稱為檔案指標。通過檔案指標就可對它所指的檔案進行各種操作。定義說明檔案指...

C語言中fopen函式開啟檔案後,檔案以何種方式讀入記憶體

c語言fopen函式用於開啟檔案。函式原型 file fopen const char path,const char mode 引數 path 字串型別,表示檔案所在的路徑,包括檔名 mode 開啟檔案的模式 返回值 檔案順利開啟後,指向該流的檔案指標就會被返回。如果檔案開啟失敗則返回null,並...

c語言中標頭檔案和原始檔寫法有什麼區別

標頭檔案和原始檔在本質上沒有任何區別。只不過一般 字尾為 h 的檔案是標頭檔案,內含函式宣告 巨集定義 結構體定義等內容。字尾為 c 的檔案是原始檔,內含函式實現,變數定義等內容。而且是什麼字尾也沒有關係,只不過編譯器會預設對某些字尾的檔案採取某些動作。這樣分開寫成兩個檔案是一個良好的程式設計風格。...