調(diào)用函數(shù)庫的話用#include?XXX.h或者#include"XXX.h"區(qū)別是你庫文件放在同一個文件夾還是在IDE的安裝目錄下面,如果你庫文件在你工程文件夾里面用#includeXXX.h,否則用#include?"XXX.h"
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括高安網(wǎng)站建設(shè)、高安網(wǎng)站制作、高安網(wǎng)頁制作以及高安網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,高安網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到高安省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
如果你說自己寫庫的話是需要兩個宏命令,#ifndef?_XXX_H?#define?_XXX_H,然后你函數(shù)名用extern表示
如果你說編譯的話,你應(yīng)該說的是編譯原理吧,你可以反匯編一下一個編譯好的程序,如果該處編譯了一個其他函數(shù)庫的函數(shù),你可以看到程序把參數(shù)PUSH到內(nèi)存后CALL或者LCALL了一個這個函數(shù)的地址,這就完成了匯編中調(diào)用函數(shù)的部分,我記得X86里面CALL的機(jī)器碼是E8H吧,有興趣的話可以自己用反匯編看一下
這個CALL的話就是調(diào)用函數(shù)的功能
C語言可以在程序中調(diào)用其他文件中的函數(shù)。
在大型的程序軟件開發(fā)中,為了代碼的可讀性,或多人同時進(jìn)行代碼開發(fā),可以各寫自己的源文件,然后,在編譯時,將多個源文件鏈接到一起,就可以形成最終的目標(biāo)程序。
各程序中的函數(shù)可以是共用的,參考代碼如下:
//a.c
#include stdio.h
int funa( int n )
{
printf("n=%d\n", n );
return n*2 ;
}
//main.c
#include stdio.h
extern int funa(int); //聲明funa為外部函數(shù)
void main()
{
int x=5,y;
y=funa(x);
printf("y=%d\n", y );
}
在linux下,編譯方法為:gcc main.c a.c -o test
在windows下,可建立一個工程,將兩個文件添加到該工程中,編譯,運(yùn)行即可
file1.c 頭文件為file1.h
file2.c 頭文件為file2.h
比如file2.c要調(diào)用file1.c里的一個函數(shù)
首先file2.c里要包含file1.h頭文件(file1.h里有file1.c的函數(shù)申明)
然后file2.c文件里要有file1.c里的外部函數(shù)申明,用extern關(guān)鍵字申明
然后就可以直接file2.c里面調(diào)用file1.c里的函數(shù)了
我在單片機(jī)里是這樣弄的完全沒問題,51,avr,pic都可以