C 標頭檔案 h的作用

2021-08-11 20:50:43 字數 2663 閱讀 5919

收到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

/* test1.c */  

main()

注意,test1

中並沒有

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

/* test2.c */  

prtstr()

main()

test2.c

中還是沒有

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

/* test3.c */  

main()

prtstr()

test3.c中仍然沒有

.h檔案,編譯失敗→_

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

語言中的概念:作用域。

我們在這裡只講述與.h

檔案相關的頂層作用域

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

prtstr()

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

,只有定義

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

,到檔案結束

, 也就是說,在

test2.c

的main()

函式的引用點上

,已經是他的作用域。 

test3.c

的main()

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

,所以會編譯出錯

. 這種情況怎麼辦呢

? 有兩種方法 

,乙個就是讓我們回到

test2.c, 

順序對我們來說沒什麼

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

,程式能執行

, 就讓

main()

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

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

/* test4.c */   

play2()

play1()

main()

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

函式巢狀。

play1 

和play2 

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

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

,使用宣告.

/* test5.c */   

play1();

play2();

play2()

play1()

main()

乙個大型的軟體專案,

可能有幾千個

,上萬個 

play, 

而不只是 

play1,play2

這麼簡單

, 這樣就可能有 

n 個類似 

play1(); play2(); 

這樣的宣告

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

play1(); play2(); 

另行管理

, 而不是把他放在

.c檔案中

, 於是

.h 檔案出現了

.

/* test.h */  

play1();

play2();

/* test6.c */

#include 「test.h」

play2()

play1();

main()

上面是.h

檔案的最基本的功能。

c標頭檔案 h 的作用

c語言的著作中,至今還沒發現把 h理論概述 h中一般放的是同名 c檔案中定義的變數 陣列 函式的宣告,需要讓 c外部使用的宣告。1 h檔案作用 1.方便開發 包含一些檔案需要的共同的常量,結構 型別定義,函式 變數申明 2.使函式的作用域從函式宣告的位置開始,而不是函式定義的位置 實踐總結 3 提供...

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檔案可分別編譯成各自的目標...