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 的檔案是原始檔,內含函式實現,變數定義等內容。而且是什麼字尾也沒有關係,只不過編譯器會預設對某些字尾的檔案採取某些動作。這樣分開寫成兩個檔案是一個良好的程式設計風格。...