1樓:暴素芹區甲
c語言的原始檔分為兩種:
1、.c檔案,以c為副檔名,一般儲存具體功能的實現;
2、.h檔案,稱為標頭檔案,一般儲存型別的定義,函式的宣告等。
通常,標頭檔案被.c檔案包含,使用#include語句。但值得注意的是,這只是一種約定,而非強制。
事實上,將宣告寫在.c檔案,比如a.c,然後#include "a.c"
同樣是合法的。
而把.h檔案,內部寫入函式實現,再在.c檔案中引用,也是編譯器允許的。
所以,.c與.h的區分,本質上是一種約定。一名合格的軟體開發人員,也要遵循這個約定,增加**的可讀性和維護性。
c語言中#include ***.c和***.h有什麼區別?
2樓:河北藍楓科技
區分在實際使用中並沒有什麼影響,但是 .h 主要放一些巨集定義,.c放程式**,這樣做對以後程式香梅的維護和移植就比較方便了,這樣做只是形成一個良好的**書寫規範。
3樓:易火純蓮
寫了三年**了,第一次遇到#include "***.c"忍不住回答一下這個問題。
首先 .h 標頭檔案,主要提供要對外匯出的符號。 .c 原始檔,主要提供實現以及實現內部的符號。兩者從功能上不一樣,但在特定的情況下互換也可以編譯通過。
例如,在test.c 中實現了一個test()函式。在source1.
c中#include "test.c",然後呼叫test()是沒有一點問題的。但是如果在source1.
c和source2.c中都#include "test.c",則大多數編譯器下會無法通過編譯。
因為test()重定義了。
#include "***.c"主要還是應用於較大規模的軟體中的配置檔案,來決定哪些source參與編譯,至於那些不需要的,則可以輕易加字首//
c語言中 .c和.h有什麼區別
4樓:
c語言的原始檔分為兩種:
1、.c檔案,以c為副檔名,一般儲存具體功能的實現;
2、.h檔案,稱為標頭檔案,一般儲存型別的定義,函式的宣告等。
通常,標頭檔案被.c檔案包含,使用#include 語句。
但值得注意的是,這只是一種約定,而非強制。
事實上,將宣告寫在.c檔案,比如a.c,然後#include "a.c"
同樣是合法的。
而把.h檔案,內部寫入函式實現,再在.c檔案中引用,也是編譯器允許的。
所以,.c與.h的區分,本質上是一種約定。一名合格的軟體開發人員,也要遵循這個約定,增加**的可讀性和維護性。
5樓:蝌蚪聰明頂呱呱
.c是 c 語言程式檔案,是可以被編譯然後執行的檔案;
.h 字尾是 c 語言程式庫的檔案,是可以在 c 語言程式中被包含,但是不能編譯並執行的檔案。
c語言中 .c和.h有什麼區別
6樓:大野瘦子
一、意思不同
.h中一般放的是同名.c檔案中定義的變數、陣列、函式的宣告,需要讓.c外部使用的宣告。
.c檔案一般放的是變數、陣列、函式的具體定義。
二、用法不同
.c檔案,以c為副檔名,一般儲存具體功能的實現。
.h檔案,稱為標頭檔案,一般儲存型別的定義,函式的宣告等。通常,標頭檔案被.c檔案包含,使用#include 語句。但值得注意的是,這只是一種約定,而非強制。
三、作用
如果在h檔案中實現一個函式體,那麼如果在多個c檔案中引用它,而且又同時編譯多個c檔案,將其生成的目標檔案連線成一個可執行檔案,在每個引用此h 檔案的c檔案所生成的目標檔案中,都有一份這個函式的**,如果這段函式又沒有定義成區域性函式,那麼在連線時,就會發現多個相同的函式,就會報錯。
如果在h檔案中定義全域性變數,並且將此全域性變數賦初值,那麼在多個引用此h檔案的c檔案中同樣存在相同變數名的拷貝,關鍵是此變數被賦了初值,所以編 譯器就會將此變數放入data段,最終在連線階段,會在data段中存在多個相同的變數,它無法將這些變數統一成一個變數,也就是僅為此變數分配一個空 間,而不是多份空間,假定這個變數在h檔案沒有賦初值,編譯器就會將之放入bss段,聯結器會對bss段的多個同名變數僅分配一個儲存空間。
7樓:風若遠去何人留
c語言的原始檔分為兩種:
1、.c檔案,以c為副檔名,一般儲存具體功能的實現;
2、.h檔案,稱為標頭檔案,一般儲存型別的定義,函式的宣告等。
通常,標頭檔案被.c檔案包含,使用#include 語句。
但值得注意的是,這只是一種約定,而非強制。
事實上,將宣告寫在.c檔案,比如a.c,然後#include "a.c"
同樣是合法的。
而把.h檔案,內部寫入函式實現,再在.c檔案中引用,也是編譯器允許的。
所以,.c與.h的區分,本質上是一種約定。一名合格的軟體開發人員,也要遵循這個約定,增加**的可讀性和維護性。
8樓:匿名使用者
標頭檔案用於定義型別
c檔案主要用於寫實現.
9樓:匿名使用者
在」998999999899998」ii
c語言中 .c和.h有什麼區別
10樓:
c語言的原始檔分為兩種:
1、.c檔案,以c為副檔名,一般儲存具體功能的實現;
2、.h檔案,稱為標頭檔案,一般儲存型別的定義,函式的宣告等。
通常,標頭檔案被.c檔案包含,使用#include 語句。
但值得注意的是,這只是一種約定,而非強制。
事實上,將宣告寫在.c檔案,比如a.c,然後#include "a.c"
同樣是合法的。
而把.h檔案,內部寫入函式實現,再在.c檔案中引用,也是編譯器允許的。
所以,.c與.h的區分,本質上是一種約定。一名合格的軟體開發人員,也要遵循這個約定,增加**的可讀性和維護性。
11樓:核桃愛花生
一個源程式檔案,一個是標頭檔案,標頭檔案一般是用來宣告同名程式中實現的函式,還有就是定義一些常量.
c語言中的標頭檔案例如cstdio和stdio.h,cstdio中的c與stdio.h的.h有什麼區別?謝謝
12樓:匿名使用者
stdio.h是先到你程式所在資料夾找標頭檔案,若沒找到再去vc或tc安裝目錄下找標頭檔案
只到vc或tc安裝目錄下去找標頭檔案
stdio.h他是c語言中一個庫函式,在他的左右兩邊加「」和<>都是一樣的,在vc++環境中,電腦都能識別,這兩種寫法不同,但要表達的意思是一樣的。舉個簡單的
#include#include"stdio.h"void main()void main()} 這兩個c語言程式輸出的都是c yu yan這幾個字母,這兩個「」和<>你喜歡哪一個你就寫哪一個,所表達的意思都是一樣的。
13樓:金色潛鳥
stdio.h 是 c 語言標準庫 中的標頭檔案。
cstdio 是 c++ std namespace 裡的庫函式 標頭檔案。
功能上 都是 標準輸入輸出函式 (標頭檔案/函式原型宣告),但它們是不同的 檔案,內容 也不完全相同。
用 cstdio 時,若程式裡 未加 using namespace std 時,呼叫這個名字空間的函式 需加 std::
c++ 程式應當用 cstdio, c 程式應當用 .h;
詳見
c語言中標頭檔案中<*.h>和「*.h」的區別?
14樓:匿名使用者
<*.h>表示優先中系統目錄中查詢 該標頭檔案 比如#include 這是系統中的
"*.h"表示優先從當前目錄中查詢 該標頭檔案 比如#include "head.h" 這是你自己寫的
15樓:縱橫朝野
前者編譯時系統直接在標頭檔案庫中尋找包含內容。
後者編譯時系統會先在儲存程式的資料夾中找程式包含檔案,之後去標頭檔案庫中尋找;
16樓:
<*.h>直接在編譯器標準庫路徑查詢,不到別的地方找。
"*.h"先在當前檔案路徑找,如果找不到,再去標準庫路徑找,如果還找不到,那就完了。
#include "一個絕對路徑",那隻在你指定的路徑查詢。
17樓:匿名使用者
標頭檔案<*.h>只檢索vc++自帶的標頭檔案
標頭檔案"*.h"可以檢索使用者自己編寫的標頭檔案
18樓:匿名使用者
對於#include <*.h> ,編譯器從標準庫路徑開始搜尋*.h ,對於#include 「*.h」 ,編譯器從使用者的工作路徑開始搜尋 *.h。
19樓:秦奇敏康寧
c的標頭檔案都有副檔名.h,c++中,將這些c的標頭檔案名的新增字元c,並去除副檔名.h。如
math.h
→cmath
stdlib.h
→cstdlib等等
在c語言中,#include
20樓:影者東昇
#include //定義輸入/輸出函式
#include //字串處理
c/c++標頭檔案一覽
c、傳統 c++
#include //設定插入點
#include //字元處理
#include //定義錯誤碼
#include //浮點數處理
#include //檔案輸入/輸出
#include //引數化輸入/輸出
#include //資料流輸入/輸出
#include //定義各種資料型別最值常量#include //定義本地化函式
#include //定義數學函式
#include //定義輸入/輸出函式
#include //定義雜項函式及記憶體分配函式#include //字串處理
#include //基於陣列的輸入/輸出#include //定義關於時間的函式
#include //寬字元處理及輸入/輸出#include //寬字元分類
標準 c++ (同上的不再註釋)
#include //stl 通用演算法
#include //stl 位集容器
#include
#include
#include
#include
#include //複數類
#include
#include
#include
#include
#include //stl 雙端佇列容器#include //異常處理類
#include
#include //stl 定義運算函式(代替運算子)#include
#include //stl 線性列表容器#include //stl 對映容器
#include
#include //基本輸入/輸出支援
#include //輸入/輸出系統使用的前置宣告#include
#include //基本輸入流
#include //基本輸出流
#include //stl 佇列容器
#include //stl 集合容器
#include //基於字串的流
#include //stl 堆疊容器
#include //標準異常類
#include //底層輸入/輸出支援
#include //字串類
#include //stl 通用模板類
#include //stl 動態陣列容器#include
#include
using namespace std;
c99 增加
#include //複數處理
#include //浮點環境
#include //整數格式轉換
#include //布林環境
#include //整型環境
#include //通用型別數學巨集
c語言中與有什麼區別C語言中和的區別
語言中 與 有三個區別 作用不同 輸出的值不同 使用方法不同。如下參考 一 作用不同 表示按位與運算,另外也是取地址符 例如 0010 1101,結果為0000 表示邏輯與運算 例如 if a 0 b 0 意思就是ifa為0並且b為0的時候,進行下一步操作。二 輸出的值不同 b輸出的值為2,說明b沒...
c語言中pa與pa有什麼區別c語言中intpa與intpa有什麼區別???求大俠幫忙!!!
讓我來綜合一下吧 在定義的時候 int p a 是等同於 int p p a 的。該形式只在定義的時候是正確的。就是指標p所指向地址的內容為a的內容。如果不是定義的時候 p a 就是它字元的那個意思,就是指標p所指向地址的內容為a的地址。dev c 試了下 p 表示地址為p儲存單元的內容 p 表示地...
c語言中和有什麼區別,c語言中的break與Continue有什麼區別
是賦值操作 是比較是否相等操作 if i 1 是永遠成立的 if i 1 只有當1值是1才成立 i i是把數字1的值賦給i i 1是i的值等於1 前者為賦值,後者為判斷 是複製語句,是判斷前後是否相等 是賦值操作,是比較是否相等操作。你是初學吧!是賦值,例如inta 3 intb a 那麼b 3.關...