c標頭檔案 h 的作用

2021-08-17 01:09:12 字數 2969 閱讀 5350

c語言的著作中,至今還沒發現把

.h理論概述:

.h中一般放的是同名

.c檔案中定義的變數、陣列、函式的宣告,需要讓

.c外部使用的宣告。

1)h檔案作用

:1.方便開發

:包含一些檔案需要的共同的常量,結構

,型別定義,函式

,變數申明;

2. 使函式的作用域從函式宣告的位置開始,而不是函式定義的位置

(實踐總結

)3 .

提供介面

:對乙個軟體包來說可以提供乙個給外界的介面(例如

: stdio.h)

。2)h檔案裡應該有什麼:常量

,結構,型別定義,函式

,變數申明。

3)h檔案不應該有什麼

:變數定義

, 函式定義。

4)extern問題:1.

對於變數需要

extern;2.

對於函式不需要因為函式的預設狀態是

extern的.

如果乙個函式要改變為只在檔案內可見,加

static

。5)include包含問題

:雖然申明和型別定義可以重複

,不過推薦使用條件編譯。

#ifndef _filename_h,

#define _filename_h

……#endif

實踐總結

:先看最簡單的程式:hello world

[cpp]view plain

copy 1 

/*test1.c*/

2 main()  

3    

注意,test1

中並沒有

.h檔案,編譯可以順利通過。把程式做下改動,下面這個:

[cpp]view plain

copy 1 

/*test2.c*/

2 prtstr()  

3   

6 main()  

7   

test2.c中還是沒有

.h檔案,編譯仍可以順利通過。再把程式改動下:

[cpp]view plain

copy 1 

/*test3.c*/

2 main()  

3   

6   

7 prtstr()  

8   

test3.c中仍然沒有

.h檔案,編譯失敗→_

→。難道函式的位置影響編譯的過程?現在我們來熟悉一下c

語言中的概念:作用域。

我們在這裡只講述與.h

檔案相關的頂層作用域

, 頂層作用域就是從宣告點延伸到源程式文字結束, 就

prtstr()

這個函式來說,他沒有單獨的宣告

,只有定義

,那麼就從他定義的行開始

,到檔案結束

, 也就是說,在

test2.c

的main()

函式的引用點上

,已經是他的作用域。 

test3.c

的main()

函式的引用點上,還不是他的作用域

,所以會編譯出錯

. 這種情況怎麼辦呢

? 有兩種方法 

,乙個就是讓我們回到

test2.c, 

順序對我們來說沒什麼

, 誰先誰後不一樣呢,只要能編譯通過

,程式能執行

, 就讓

main()

檔案總是放到最後吧。那就讓我們來看另乙個例程

,讓我們看看這個方法是不是在任何時候都會起作用

.[cpp]view plain

copy

/*test4.c*/

2 play2()   

3    

6      

7 play1()  

8    

11      

12 main()   

13    

這就是經常用到的一種演算法, 

函式巢狀。

play1 

和play2 

這兩個函式哪個放到前面呢

?這時就需要我們來使用第二種方法

,使用宣告

.[cpp]view plain

copy 1 

/*test5.c*/

2 play1();   

3 play2();  

4   

5 play2()   

6    

9   play1()   

10    

13 main()   

14    

乙個大型的軟體專案,

可能有幾千個

,上萬個 

play, 

而不只是 

play1,play2

這麼簡單

, 這樣就可能有 

n 個類似 

play1(); play2(); 

這樣的宣告

, 這個時候就需要我們想辦法把這樣的 

play1(); play2(); 

另行管理

, 而不是把他放在

.c檔案中

, 於是

.h 檔案出現了

.[cpp]view plain

copy 1 

/*test.h */

2 play1();   

3 play2();   

4 /* test6.c */

5 #include 「test.h」   

6 play2()   

7    

10 play1();   

11    

14 main()   

15    

C 標頭檔案 h的作用

收到c語言,必然會用到.h檔案,它有什麼樣的作用?整理各網路資料,如下基本功能描述 理論概述 h中一般放的是同名 c檔案中定義的變數 陣列 函式的宣告,需要讓 c外部使用的宣告。1 h檔案作用 1.方便開發 包含一些檔案需要的共同的常量,結構 型別定義,函式 變數申明 2.使函式的作用域從函式宣告的...

C 標頭檔案的作用

標頭檔案 每個c c程式通常分為兩個檔案。乙個檔案用於儲存程式的宣告 declaration 稱為標頭檔案。另乙個檔案用於儲存程式的實現 implementation 稱為定義 definition 檔案。c c程式的標頭檔案以 h 為字尾,c程式的定義檔案以 c 為字尾,c 程式的定義檔案通常以 ...

C 標頭檔案的作用

通常,在乙個c 程式中,只包含兩類檔案 cpp檔案和.件。其中,cpp檔案被稱作c 原始檔,裡面放的都是c 的源 而.件則被稱作c 標頭檔案,裡面放的也是c 的源 c 語言支援 分別編譯 separate compilation 乙個程式包含多個.cpp檔案時,這些.cpp檔案可分別編譯成各自的目標...