c語言頭文件大全(c++頭文件大全及解釋)
- 夕逆IT
- 數(shù)據(jù)庫
- 2023-08-13
- 84
大家好,感謝邀請,今天來為大家分享一下c語言頭文件大全的問題,以及和c++頭文件大全及解釋的一些困惑,大家要是還不太明白的話,也沒有關(guān)系,因為接下來將為大家分享,希望可...
大家好,感謝邀請,今天來為大家分享一下c語言頭文件大全的問題,以及和c++頭文件大全及解釋的一些困惑,大家要是還不太明白的話,也沒有關(guān)系,因為接下來將為大家分享,希望可以幫助到大家,解決大家的問題,下面就開始吧!
c語言中,頭文件是什么意思有什么用
頭文件你可以把它看作一個函數(shù)庫有些定義和函數(shù)是要用到頭文件里面的,頭文件里面有的,你就不用再重新寫了,只要一個引用就可以了
C語言的頭文件庫有哪些
簡單來說:庫文件通過頭文件向外導(dǎo)出接口。用戶通過頭文件找到庫文件中頭文件中有函數(shù)的申明,庫文件實現(xiàn)函數(shù)的定義。比如,printf函數(shù)。使用時應(yīng)包括stdio.h,打開stdio.h你只能看到,printf這個函數(shù)的申明,卻看不到printf具體是怎么實現(xiàn)的,而函數(shù)的實現(xiàn)在相應(yīng)的C庫中。
而庫文件一般是以二進制形式而不是C源文件形式提供給用戶使用的。程序中包括了stdio.h這個頭文件。鏈接器就能根據(jù)頭件中的信息找到printf這個函數(shù)的實現(xiàn)并鏈接進這個程序代碼段里。函數(shù)實現(xiàn)的代碼從而把這段代碼鏈接到用戶程序中去。
c語言頭文件類型
c語言頭文件有以下但不止以下這些:
alloc.h:說明內(nèi)存管理函數(shù)(分配、釋放等)。
assert.h:定義assert調(diào)試宏。
bios.h:說明調(diào)用IBM—PCROMBIOS子程序的各個函數(shù)。
conio.h:說明調(diào)用DOS控制臺I/O子程序的各個函數(shù)。
ctype.h:包含有關(guān)字符分類及轉(zhuǎn)換的名類信息(如isalpha和toascii等)。
dir.h:包含有關(guān)目錄和路徑的結(jié)構(gòu)、宏定義和函數(shù)。
dos.h:定義和說明MSDOS和8086調(diào)用的一些常量和函數(shù)。
error.h:定義錯誤代碼的助記符。
fcntl.h:定義在與open庫子程序連接時的符號常量。
float.h:包含有關(guān)浮點運算的一些參數(shù)和函數(shù)。
graphics.h:說明有關(guān)圖形功能的各個函數(shù),圖形錯誤代碼的常量定義,正對不同驅(qū)動程序的各種顏色值,及函數(shù)用到的一些特殊結(jié)構(gòu)。
io.h:包含低級I/O子程序的結(jié)構(gòu)和說明。
limit.h:包含各環(huán)境參數(shù)、編譯時間限制、數(shù)的范圍等信息。
math.h:說明數(shù)學(xué)運算函數(shù),還定了HUGEVAL宏,說明了matherr和matherr子程序用到的特殊結(jié)構(gòu)。
mem.h:說明一些內(nèi)存操作函數(shù)(其中大多數(shù)也在STRING.H中說明)。
process.h:說明進程管理的各個函數(shù),spawn…和EXEC…函數(shù)的結(jié)構(gòu)說明。
setjmp.h:定義longjmp和setjmp函數(shù)用到的jmpbuf類型,說明這兩個函數(shù)。
share.h:定義文件共享函數(shù)的參數(shù)。
signal.h:定義SIG[ZZ(Z][ZZ)]IGN和SIG[ZZ(Z][ZZ)]DFL常量,說明rajse和signal兩個函數(shù)。
stddef.h:定義讀函數(shù)參數(shù)表的宏。
stddef.h:定義一些公共數(shù)據(jù)類型和宏。
stdio.h:定義Kernighan和Ritchie在UnixSystemV中定義的標準和擴展的類型和宏。還定義標準I/O預(yù)定義流:stdin,stdout和stderr,說明I/O流子程序。
stdlib.h:說明一些常用的子程序:轉(zhuǎn)換子程序、搜索/排序子程序等。
string.h:說明一些串操作和內(nèi)存操作函數(shù)。
sys\stat.h:定義在打開和創(chuàng)建文件時用到的一些符號常量。
sys\types.h:說明ftime函數(shù)和timeb結(jié)構(gòu)。
sys\time.h:定義時間的類型time[ZZ(Z][ZZ)]t。
time.h:定義時間轉(zhuǎn)換子程序asctime、localtime和gmtime的結(jié)構(gòu),ctime、difftime、gmtime、localtime和stime用到的類型,并提供這些函數(shù)的原型。
value.h:定義一些重要常量,包括依賴于機器硬件的和為與UnixSystemV相兼容而說明的一些常量,包括浮點和雙精度值的范圍。
c語言的頭文件使用簡單案例
編寫自己的C語言頭文件
1.頭文件用于聲明而不是用于定義
當設(shè)計頭文件時,記住定義和聲明的區(qū)別是很重要的。定義只可以出現(xiàn)一次,而聲明則可以出現(xiàn)多次(2.3.5節(jié))。下列語句是一些定義,所以不應(yīng)該放在頭文件里:
externintival=10;//initializer,soit'sadefinition
doublefica_rate;//noextern,soit'sadefinition
雖然ival聲明為extern,但是它有初始化式,代表這條語句是一個定義。類似地,fica_rate的聲明雖然沒有初始化式,但也是一個定義,因為沒有關(guān)鍵字extern。同一個程序中有兩個以上文件含有上述任一個定義都會導(dǎo)致多重定義鏈接錯誤。
因為頭文件包含在多個源文件中,所以不應(yīng)該含有變量或函數(shù)的定義。
C語言怎么給一個文件添加頭文件
擴展名為.h的文件,在C語言中被稱為headerfile,也就是頭文件。
頭文件的數(shù)據(jù)格式就是普通的文本文件,可以通過新建文本文件(txt),再把擴展名改為.h的方式創(chuàng)建,在此不贅述。
一、頭文件內(nèi)容格式。
頭文件內(nèi)容并沒有固定的格式要求,不過一般為防止嵌套引用給編譯器帶來死鎖或者沒必要的開銷,一般約定整個頭文件中所有內(nèi)容在一個條件編譯下,即如下格式:
#ifndef宏名
#define宏名
//頭文件主體
#endif
這樣可以保證一個頭文件在一個源文件中最多只被引用一次。為避免宏名重復(fù),宏名一般由頭文件名轉(zhuǎn)換而來,如果頭文件名是xxx.h,那么宏名一般定義為:
_XXX_H_
即前后各加一個下劃線,同時文件名中除數(shù)字、字母、下劃線以外的字符均轉(zhuǎn)換為下劃線(_)。
頭文件主體中內(nèi)容同樣沒有做強制約定,可以出現(xiàn)在源文件(.c)中的任何代碼均可以放在頭文件中。不過一般情況下可以包括以下幾種內(nèi)容:
1引用其它頭文件,格式為
#include<xxx.h>
或
#include"xxx.h"
二者區(qū)別在介紹頭文件引用時再詳細介紹。
2定義私有類型。比如
typedefunsignedlongU32;//為了簡寫而給無符號32位整型定義一個新的名字
structxxx{};
也可以是enum,union等復(fù)雜類型。
3宏定義。比如
#defineMAX(a,b)(a>b?a:b)
4函數(shù)聲明。比如
voidtest_function(void);
5全局變量聲明。比如
externintglobal_var;
6如果有一個靜態(tài)全局變量需要在不同源文件中使用,但各文件之間互不相關(guān)。那么可以放在頭文件中。如:
staticintgs_var=3;
7對于支持C99規(guī)范的C編譯器,還可以把內(nèi)聯(lián)函數(shù)定義在頭文件中。比如
staticinlineintget_min(inta,intb){if(a>b)returnb;returna;}
以上是常見的頭文件中的元素。但實際上頭文件中也可以放全局變量的定義,全局函數(shù)的實現(xiàn)等。但是頭文件中一旦定義了這樣的元素,這個頭文件在一個工程中只能被一個文件引用,否則編譯器會報重復(fù)定義的錯誤。
比如如果有一個規(guī)模很大的常量數(shù)組,比如一副圖片的二進制值,如果把它定義在源文件中,就會顯得很冗余,因為并不會經(jīng)常修改。這時可以定義在頭文件中,只在一個源文件中引用,當有多幅圖片需要隨時更換時,也可以通過簡單的在源文件中修改引用的頭文件名達到修改的目的。
二、頭文件的引用。
頭文件引用的方法其實之前已經(jīng)大致說過了,在源文件中引用頭文件和在頭文件中引用的格式是一樣的:
#include<xxx.h>或者
#include"xxx.h"
xxx為頭文件名。
用<>和""是有一定的區(qū)別的。在編譯器查找頭文件的時候,會在兩個區(qū)域分別查找。
一個是系統(tǒng)頭文件區(qū)域,即類似于stdio.h一類的C庫函數(shù)頭文件區(qū)。
另一個是自定義頭文件區(qū),比如當前目錄,以及其它自定義的目錄。
用<>時,編譯器會先在系統(tǒng)區(qū)域查找,然后再查找自定義區(qū)域。而用""時則相反。
由于一般并不推薦自定義頭文件名與系統(tǒng)頭文件名相同(容易引起歧義并難以維護),所以先后順序并不是太重要,尤其在硬件速度越來越快的今天,使用哪種符號引用頭文件已經(jīng)差別很小了。
c語言頭文件作用
兄弟,對于頭文件,有以下幾個好處,你可以參考下
1,頭文件可以定義所用的函數(shù)列表,方便查閱你可以調(diào)用的函數(shù);
2,頭文件可以定義很多宏定義,就是一些全局靜態(tài)變量的定義,在這樣的情況下,只要修改頭文件的內(nèi)容,程序就可以做相應(yīng)的修改,不用親自跑到繁瑣的代碼內(nèi)去搜索。
3,頭文件只是聲明,不占內(nèi)存空間,要知道其執(zhí)行過程,要看你頭文件所申明的函數(shù)是在哪個.c文件里定義的,才知道。
4,他并不是C自帶的,可以不用。
5,調(diào)用了頭文件,就等于賦予了調(diào)用某些函數(shù)的權(quán)限,如果你要算一個數(shù)的N次方,就要調(diào)用Pow()函數(shù),而這個函數(shù)是定義在math.c里面的,要用這個函數(shù),就必需調(diào)用math.h這個頭文件。
兄弟,祝你好運
END,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!
本文鏈接:http://xinin56.com/su/7341.html