http://bbs.bccn.net/thread-212415-1-1.html
一、C語言
C 語言是1972年由美國的Dennis Ritchie設計發明的, 并首次在UNIX作業系統的 DEC PDP-11 計算機上使用。 它由早期的程式設計語言 BCPL( Basic CombindProgramming Language) 發展演變而來。在1970年, AT&T 貝爾實驗室的 KenThompson根據BCPL語言設計出較先進的并取名為 B的語言, 最後導了C 語言的問世。
随着微型計算機的日益普及, 出現了許多C 語言版本。由于沒有統一的标準,使得這些C 語言之間出現了一些不一緻的地方。為了改變這種情況, 美國國家标準研究所(ANSI)為C 語言制定了一套ANSI标準, 成為現行的C語言标準。
二 Turbo C 2.0 曆史
Turbo C 是美國Borland 公司的産品,Borland公司是一家專門從事軟體開發、研制的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, TurboPascal, Turbo Prolog, 這些軟體很受使用者歡迎。該公司在1987年首次推出Turbo C 1.0 産品, 其中使用了全然一新的內建開發環境, 即使用了一系列下拉式菜單,将文本編輯、程式編譯、連接配接以及程式運作一體化, 大大友善了程式的開發。1988年, Borland 公司又推出Turbo C1.5版本, 增加了圖形庫和文本視窗函數庫等, 而Turbo C 2.0 則是該公司1989年出版的。Turbo C2.0在原來內建開發環境的基礎上增加了查錯功能, 并可以在Tiny模式下直接生成.COM (資料、代碼、堆棧處在同一64K 記憶體中) 檔案。還可對數學協處理器 (支援8087/80287/80387等)進行仿真。
三 Turbo C 2.0内容
INSTALL.EXE 安裝程式檔案
TCINST.EXE 內建開發環境的配置設定程式
TCHELP.TCH 幫助檔案
THELP.COM 讀取TCHELP.TCH的駐留程式
README 關于Turbo C的資訊檔案
TCCONFIG.EXE 配置檔案轉換程式
MAKE.EXE 項目管理工具
*.C Turbo C例行程式(源檔案)
TC.EXE 內建編譯
TCC.EXE 指令行編譯
TLINK.EXE Turbo C系列連接配接器
TLIB.EXE Turbo C系列庫管理工具
*.LIB Turbo C庫檔案---通常是在LIB檔案夾下
GRAPHICS.LIB 圖形庫
EMU.LIB 8087仿真庫
FP87.LIB 8087庫
*.H Turbo C頭檔案--通常是在INCLUDE檔案夾下
*.BGI 不同顯示器圖形驅動程式
C0?.OBJ 不同模式啟動代碼
C?.LIB 不同模式運作庫
說明: 上面的?分别為:
T Tiny(微型模式)
S Small(小模式)
C Compact(緊湊模式)
M Medium(中型模式)
L Large(大模式)
H Huge(巨大模式)
四 重要檔案的說明
1, TCC.EXE 和 TC.EXE
Turbo c包有兩種編譯器,內建開發環境下的叫做TC.EXE和指令行方式的叫做TCC.EXE.
內建開發環境包括:內建編輯器、指令行編譯器、連接配接器、調試器。
2, TLINK.EXE 為連接配接程式,把各個obj檔案連接配接程exe檔案
obj檔案是什麼?
目标檔案,其内容為 完成某種功能的代碼,隻不過存儲的機器碼.
可以這樣了解 目标檔案 即為 子程式或子函數
tlink.exe作用是什麼?
把 啟動代碼(也是obj檔案,負責設定環境,調用main函數,等作用) + main函數所在obj +main函數所用到的obj 連接配接起來生成exe檔案.
3, TLIB.EXE 對lib檔案進行操作的一個工具.
lib檔案是什麼?
obj檔案的集合,可以使用tlib.exe 從lib檔案中取出obj檔案,向lib檔案加入obj檔案,等操作
4, *.h檔案
在include檔案夾中包含了turbo c提供的庫函數說明,隻是說明而已
如果使用者需要使用某個函數功能,需要把對應的頭檔案包含進來
當然使用者可以定義自己頭檔案
5, 設定路徑
TC內建開發環境中設定 Options/Directories下設定 include,lib路徑
使用指令行編譯的話 需要對TURBOC.CFG檔案進行編輯就可以了(使用純文字編輯器就可以)
五 建造自己的編輯環境
這個過程,實際上是為了了解turbo c對c語言的編譯,連接配接過程.并加深對編譯,連接配接,obj,lib的了解
建立一個新的檔案夾(以後用到什麼,則從tc下拷貝過來)
1 使用dos自帶的edit編輯器
2 使用tcc作為編譯器
3 使用tlink作為連接配接器
實際上還是需要其他檔案比如 c0s.obj ,cs.lib,等
例子: 參見 http://www.asmedu.net/news.jsp?index=284