自定義函數庫的方法及應用:
一、2個相關的命令 1、TCC——TC的DOS下的命令行編譯連接工具 2、TLIB——TC的DOS下的庫操作工具
二、1個自定義的函數庫的例子
1、在TC集成環境下,編一個文件USERADD.C
#define _NO_MAIN
int add(int *a,int *b)
{ int c;
c=(*a)+(*b);
return c;
}
按ALT—F9編譯 生成一個 USERADD.OBJ文件。
2、按F10—F—O 退到DOSSHELL(DOS環境下)
COPY USERADD.OBJ 到 ..\LIB目錄,在\LIB目錄下執行
TLIB USERLIB.LIB+USERADD.OBJ 就生成了一個自己的函數庫 USERLIB,在這個函數庫裡就包含了函數模塊 int add(int *a,int *b) 的二進制代碼。現在已經將自定義的函數放進了函數庫,就可以把原文件USERADD.C刪掉不要了。(當然,為了以後維護方便,還是作一個備份為好)。 以後如有其它的函數模塊,也可以編譯後用TLIB 命令加入到這個函數庫裡。
3、寫一個包含文件 USER1.H,寫完後COPY到INCLUDE 目錄。內容如下:
int add(int *,int *);
4、作好了以上的自定義函數庫的准備工作,現在就可以使用了。
寫一個程序,取名為ADD-1.C,在程序中調用庫函數add( );
#include<stdio.h>
#include<user1.h>
void main( )
{
int a,b,c;
a=20;b=30;
c=add(&a,&b);
printf(“%d”,c);
}
5、在DOS命令行下,執行 TCC ADD-1.C ..\LIB\USERLIB.LIB 就OK!
運行ADD-1.EXE,可以看到輸出結果 50
=============================================================
注:在DOS下編譯和連接是一件煩心的事情,下面講的方法就可以在TC集成環境下實現編譯和連接。
在上面的第二步中,TLIB命令的執行改為 TLIB CS. LIB+USERADD.OBJ 這裡是將自定義函數模塊的二進制代碼加入到 運行時庫CS. LIB裡面。(對應不同的編譯模式,選用不同的Cx.LIB)
然後在集成環境下編譯連接 ADD-1.C 就可以了。
附注:CS.LIB 小模式庫
CC.LIB 緊湊模式庫
CM .LIB 中模式庫
CL .LIB 大模式庫
CH .LIB 巨模式庫
(以上五種為運行時庫,無論建立何種程序都要連接這些函數庫)
EMU|FP87:EMU 是浮點數模擬函數庫,而FP87則是當我們具有80X87共處理機時所使用的浮點數函數庫。如果程序中有浮點運算就必須連接這二個函數庫之一,以及MATHx函數庫。
MATHx:數學函數庫。其中x代表s、c、m、l、h字符。
另外,TC 的哪一個庫函數的二進制代碼放在哪一個函數庫裡不得而知。但有一點可以肯定,就在這其中的庫裡面。