擴(kuò)展名為.h的文件,在C語言中被稱為header file, 也就是頭文件。

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、湖北網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為湖北等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
頭文件的數(shù)據(jù)格式就是普通的文本文件,可以通過新建文本文件(txt),再把擴(kuò)展名改為.h的方式創(chuàng)建,在此不贅述。
一、頭文件內(nèi)容格式。
頭文件內(nèi)容并沒有固定的格式要求,不過一般為防止嵌套引用給編譯器帶來死鎖或者沒必要的開銷,一般約定整個(gè)頭文件中所有內(nèi)容在一個(gè)條件編譯下,即如下格式:
#ifndef 宏名
#define 宏名
//頭文件主體
#endif
這樣可以保證一個(gè)頭文件在一個(gè)源文件中最多只被引用一次。為避免宏名重復(fù),宏名一般由頭文件名轉(zhuǎn)換而來,如果頭文件名是xxx.h,那么宏名一般定義為:
_XXX_H_
即前后各加一個(gè)下劃線,同時(shí)文件名中除數(shù)字、字母、下劃線以外的字符均轉(zhuǎn)換為下劃線(_)。
頭文件主體中內(nèi)容同樣沒有做強(qiáng)制約定,可以出現(xiàn)在源文件(.c)中的任何代碼均可以放在頭文件中。不過一般情況下可以包括以下幾種內(nèi)容:
1 引用其它頭文件,格式為
#include xxx.h
或
#include "xxx.h"
二者區(qū)別在介紹頭文件引用時(shí)再詳細(xì)介紹。
2 定義私有類型。比如
typedef unsigned long U32; //為了簡(jiǎn)寫而給無符號(hào)32位整型定義一個(gè)新的名字
struct xxx {};
也可以是enum, union等復(fù)雜類型。
3 宏定義。比如
#define MAX(a,b) (ab?a:b)
4 函數(shù)聲明。比如
void test_function(void);
5 全局變量聲明。比如
extern int global_var;
6 如果有一個(gè)靜態(tài)全局變量需要在不同源文件中使用,但各文件之間互不相關(guān)。那么可以放在頭文件中。如:
static int gs_var = 3;
7 對(duì)于支持C99規(guī)范的C編譯器,還可以把內(nèi)聯(lián)函數(shù)定義在頭文件中。比如
static inline int get_min(int a, int b)
{
if(ab) return b;
return a;
}
以上是常見的頭文件中的元素。但實(shí)際上頭文件中也可以放全局變量的定義,全局函數(shù)的實(shí)現(xiàn)等。但是頭文件中一旦定指蠢義了這樣的元素,這個(gè)頭文件在一個(gè)工程中只能被一個(gè)文件引用,否則編譯器會(huì)報(bào)重復(fù)定義的錯(cuò)誤。
比如如果有一個(gè)規(guī)模很大的常量數(shù)組,比如一副圖片的二進(jìn)制值,如果把它定義在源文件中,就會(huì)顯得很冗余,因?yàn)椴⒉粫?huì)經(jīng)常修改。 這時(shí)可以定義在頭文件中,只在一個(gè)源文件中引用,當(dāng)有多幅圖片需要隨時(shí)更換時(shí),也可以通過簡(jiǎn)單的在源文件中修改引用的頭文件名達(dá)到修改的目的。
二、頭文件的引用。
頭文件引用的方法其實(shí)之前已經(jīng)大致說過了,在源文件中引用頭文件和在頭文件中引用的格式是一樣的:
#includexxx.h或者
#include "xxx.h"
xxx為頭文件名。
用和""是有一定的區(qū)別的彎汪。唯鬧陪在編譯器查找頭文件的時(shí)候,會(huì)在兩個(gè)區(qū)域分別查找。
一個(gè)是系統(tǒng)頭文件區(qū)域,即類似于stdio.h一類的C庫函數(shù)頭文件區(qū)。
另一個(gè)是自定義頭文件區(qū),比如當(dāng)前目錄,以及其它自定義的目錄。
用時(shí),編譯器會(huì)先在系統(tǒng)區(qū)域查找,然后再查找自定義區(qū)域。而用""時(shí)則相反。
由于一般并不推薦自定義頭文件名與系統(tǒng)頭文件名相同(容易引起歧義并難以維護(hù)),所以先后順序并不是太重要,尤其在硬件速度越來越快的今天,使用哪種符號(hào)引用頭文件已經(jīng)差別很小了。
分類: 電腦/網(wǎng)絡(luò) 程腔握序設(shè)計(jì) 其他編程語言
問題描述:
如題,比如我建了兩個(gè)C源文件
A1.C 和 A2.c
我把鍵圓汪一個(gè)自字義函數(shù)寫在A2.c里面,然后在A1.c里面調(diào)用它
1,A1.c要怎樣調(diào)用?
2,A2.c里面要怎樣寫?只寫一個(gè)自定義函數(shù)就可以了嗎?
解析:
有兩種方法:
1。在A2.c中有完整的函數(shù)定義,在A1.c中添加一下要用到的函數(shù)原型就可以了,例如:
在A2.c中:有函數(shù)void A2(){...};
在A1.c中:在文件前頭增加一行:void A2();就可以了
2。把A2.c中完整定義的函數(shù)的原型,寫到一個(gè)A2.h文件中,然后在A1.c的文件頭增加#include "A2.h"就可以了
以上兩種方法,在A1.c中都可以正常的調(diào)稿仔用,就跟在A2.c中調(diào)用一樣。
文章標(biāo)題:c語言查找文件的函數(shù)調(diào)用 c語言查找方法
網(wǎng)站路徑:http://chinadenli.net/article36/dspghpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、云服務(wù)器、域名注冊(cè)、網(wǎng)頁設(shè)計(jì)公司、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)