1、一般做法是頭文件里只寫 函數(shù) 原型。函數(shù)定義部分可以編譯成 .obj 形式。應(yīng)用時(shí),調(diào)用程序里寫頭文件和調(diào)用語句,編譯時(shí),把.obj ?鏈接進(jìn)去就可以了。你也可以把頭文件和 .obj 給別人,別人可以使用你的函數(shù),但看不見你的源程序 -- 庫程序的基本原理就是這樣的。當(dāng)然,不編成.obj ,而直接把10多個(gè)函數(shù)源程序?qū)戇M(jìn)去也可以。
創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)十多年來致力于為客戶提供網(wǎng)站制作、成都做網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷推廣、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了近1000家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。
2、C語言頭文件
(1)在C語言家族程序中,頭文件被大量使用。一般而言,每個(gè)C++/C程序通常由頭文件(header files)和定義文件(definition files)組成。頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明(declaration),而定義文件用于保存程序的實(shí)現(xiàn) (implementation)。 .c就是你寫的程序文件。
(2)一般在一個(gè)應(yīng)用開發(fā)體系中,功能的真正邏輯實(shí)現(xiàn)是以硬件層為基礎(chǔ),在驅(qū)動程序、功能層程序以及用戶的應(yīng)用程序中完成的。頭文件的主要作用在于多個(gè)代碼文件全局變量(函數(shù))的重用、防止定義的沖突,對各個(gè)被調(diào)用函數(shù)給出一個(gè)描述,其本身不需要包含程序的邏輯實(shí)現(xiàn)代碼,它只起描述性作用,用戶程序只需要按照頭文件中的接口聲明來調(diào)用相關(guān)函數(shù)或變量,鏈接器會從庫中尋找相應(yīng)的實(shí)際定義代碼。
(3)從以上結(jié)構(gòu)圖來看,頭文件是用戶應(yīng)用程序和函數(shù)庫之間的橋梁和紐帶。在整個(gè)軟件中,頭文件不是最重要的部分,但它是C語言家族中不可缺少的組成部分。編譯時(shí),編譯器通過頭文件找到對應(yīng)的函數(shù)庫,進(jìn)而把已引用函數(shù)的實(shí)際內(nèi)容導(dǎo)出來代替原有函數(shù)。進(jìn)而在硬件層面實(shí)現(xiàn)功能。
可以。
printf函數(shù)是一個(gè)標(biāo)準(zhǔn)庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。
函數(shù)的定義:給定一個(gè)數(shù)集A,對A施加對應(yīng)法則f,記作f(A),得到另一數(shù)集B,也就是B=f(A)。那么這個(gè)關(guān)系式就叫函數(shù)關(guān)系式,簡稱函數(shù)。
你可以創(chuàng)建頭文件,頭文件是以".h"結(jié)尾的文件名,而main()函數(shù)所在的文件則是以".c"結(jié)尾的,".c"后綴的文件內(nèi)部,也就是main函數(shù)內(nèi)部主要是調(diào)用各個(gè)功能函數(shù),函數(shù)的聲明部分一般放在在".h"后綴的頭文件中,這樣是為了實(shí)現(xiàn)C語言的結(jié)構(gòu)化,創(chuàng)建好了頭文件,就可以在頭文件內(nèi)部實(shí)現(xiàn)各個(gè)函數(shù)的聲明,具體的一個(gè)完整的函數(shù)聲明可以用下面的加法函數(shù)例子來說明 :
//includeadd.h,頭文件名為add的頭文件
float add(float x,float y) /*定義add函數(shù)*/
{
float z;
z=x+y;
return(z);
}
這個(gè)函數(shù)的返回值是float(浮點(diǎn)型或是實(shí)型),add為函數(shù)名,調(diào)用的形參都是float類型,數(shù)目為兩個(gè)形參x,y。x,y是接受main()函數(shù)中的實(shí)參傳過來的具體值,然后進(jìn)行運(yùn)算。main函數(shù)調(diào)用只要這樣就可以:
#includestdio.h
#includeadd.h
main()
{
float c;
c=add(4.6,5.4);
printf("x+y=%d",c);
}