C語言中 c和 h有什麼區別,C語言中標頭檔案中 h 和「 h」的區別?

2021-05-06 04:39:09 字數 6143 閱讀 8879

1樓:

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

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

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

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

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

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

同樣是合法的。

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

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

2樓:蝌蚪聰明頂呱呱

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

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

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

3樓:

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

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

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

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

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

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

同樣是合法的。

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

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

4樓:核桃愛花生

一個源程式檔案,一個是標頭檔案,標頭檔案一般是用來宣告同名程式中實現的函式,還有就是定義一些常量.

c語言中#include ***.c和***.h有什麼區別?

5樓:河北藍楓科技

區分在實際使用中並沒有什麼影響,但是 .h 主要放一些巨集定義,.c放程式**,這樣做對以後程式香梅的維護和移植就比較方便了,這樣做只是形成一個良好的**書寫規範。

6樓:易火純蓮

寫了三年**了,第一次遇到#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有什麼區別

7樓:暴素芹區甲

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

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

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

通常,標頭檔案被.c檔案包含,使用#include語句。但值得注意的是,這只是一種約定,而非強制。

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

同樣是合法的。

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

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

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

8樓:大野瘦子

一、意思不同

.h中一般放的是同名.c檔案中定義的變數、陣列、函式的宣告,需要讓.c外部使用的宣告。

.c檔案一般放的是變數、陣列、函式的具體定義。

二、用法不同

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

.h檔案,稱為標頭檔案,一般儲存型別的定義,函式的宣告等。通常,標頭檔案被.c檔案包含,使用#include 語句。但值得注意的是,這只是一種約定,而非強制。

三、作用

如果在h檔案中實現一個函式體,那麼如果在多個c檔案中引用它,而且又同時編譯多個c檔案,將其生成的目標檔案連線成一個可執行檔案,在每個引用此h 檔案的c檔案所生成的目標檔案中,都有一份這個函式的**,如果這段函式又沒有定義成區域性函式,那麼在連線時,就會發現多個相同的函式,就會報錯。

如果在h檔案中定義全域性變數,並且將此全域性變數賦初值,那麼在多個引用此h檔案的c檔案中同樣存在相同變數名的拷貝,關鍵是此變數被賦了初值,所以編 譯器就會將此變數放入data段,最終在連線階段,會在data段中存在多個相同的變數,它無法將這些變數統一成一個變數,也就是僅為此變數分配一個空 間,而不是多份空間,假定這個變數在h檔案沒有賦初值,編譯器就會將之放入bss段,聯結器會對bss段的多個同名變數僅分配一個儲存空間。

9樓:風若遠去何人留

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

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

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

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

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

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

同樣是合法的。

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

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

10樓:匿名使用者

標頭檔案用於定義型別

c檔案主要用於寫實現.

11樓:匿名使用者

在」998999999899998」ii

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和 #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語言a和a有什麼區別,C語言中 a 和 a 有什麼區別

1 本質區別 雙引抄號襲 裡面的是字串,而單引號裡面的代表字元。2 輸出區別 str a 輸出的就是a這個字母 str a 輸出的測試65 3 底層區別 用單引號引起的一個字元實際上代表一個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。1 用 對包bai含的du 代表字元常量,其zhi值為...

C語言中c m和c m的區別,C語言中 「 c m」和「c m」的區別是什麼?

是取址運算bai符,取變數在內du存單元中的首zhi地址dao,取地址運算子的操作物件必須專是記憶體單元 如變數 數屬組元素等 是間接訪問運算子,間接訪問指標所指向的物件,運算子的操作物件必須是指標 地址 因此 c m是把m在記憶體中的地址賦給c這個指標指向的變數c m是把m的地址賦給c這個指標 1...

指令碼語言,C語言,C 語言有什麼區別

語言本質沒有區別,只是在不同領域某些語言優勢更明顯某些語言優勢更不明顯而已 c 就是在c的基礎上引入了更過的東西。c語言和c 語言的區別是什麼?c語言與c 的區別有很多 1,全新的程式程式思維,c語言是程序導向的,而c 是物件導向的。2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個...