c語言huge
㈠ huge c語言
從表面字意上也可以看出,關鍵字是C語言本身某些特性的一個表示,是唯一的代表某一個意思的。
下面列出ANSI標準定義的32個C語言的關鍵字,這些關鍵字在以後的學習中基本上都會用到,到時再說它們的各自用法。
auto break case char const continue default
do double else enum extern float for
goto if int long register return short
signed sizeof static struct switch typedef
union unsigned void volatile while
C語言還包括一些不能用做標識符的擴展關鍵字。
asm cdecl _cs _ds _es far
huge interrupt near pascal _ss
應該跟interrupt這種差不多的吧。這個還真沒用過,只在寫dos下的C語言程序時還真有用到過interrupt
㈡ 怎樣用C語言做超大整數的減法運算
設計一個比較長的數組來記錄各位數值,計算就行。
示例:
const int MAXL = 512;
//_num表示各位數值,_len表示數值長度,_num[i]表示該位是10^i的位置
struct HugeNumber{
char _num[MAXL];
int _len;
};
//實現這個函數,就有減法了,具體就參照小學數學的減法寫個借位減法就行了
void sub_huge(const HugeNumber &a, const HugeNumber &b, HugeNumber &result);
㈢ 關於C語言
C語言是在 70 年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的「THE C PROGRAMMING LANGUAGE」一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C 語言,後來由美國國家標准協會(American National Standards Institute)在此基礎上制定了一個C 語言標准,於一九八三年發表。通常稱之為ANSI C。
1.3 C語言版本
目前最流行的C語言有以下幾種:
•Microsoft C 或稱 MS C
•Borland Turbo C 或稱 Turbo C
•AT&T C
這些C語言版本不僅實現了ANSI C標准,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
1.4 C語言的特點
1•C語言簡潔、緊湊,使用方便、靈活。ANSI C一共只有32個關鍵字:
auto break case char const continue default
do double else enum extern float for
goto if int long register return short
signed static sizof struct switch typedef union
unsigned void volatile while
9種控制語句,程序書寫自由,主要用小寫字母表示,壓縮了一切不必要的成分。
Turbo C擴充了11個關鍵字:
asm _cs _ds _es _ss cdecl far
huge interrupt near pascal
注意:在C語言中,關鍵字都是小寫的。
2•運算符豐富。共有34種。C把括弧、賦值、逗號等都作為運算符處理。從而使C的運算類型極為豐富,可以實現其他高級語言難以實現的運算。
3•數據結構類型豐富。
4•具有結構化的控制語句。
5•語法限制不太嚴格,程序設計自由度大。
6•C語言允許直接訪問物理地址,能進行位(bit)操作,能實現匯編語言的大部分功能,可以直接對硬體進行操作。因此有人把它稱為中級語言。
7•生成目標代碼質量高,程序執行效率高。
8•與匯編語言相比,用C語言寫的程序可移植性好。
但是,C語言對程序員要求也高,程序員用C寫程序會感到限制少、靈活性大,功能強,但較其他高級語言在學習上要困難一些。
1.5 面向對象的程序設計語言
在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向對象的程序設計語言。C++目前流行的最新版本是Borland C++, Symantec C++和Microsoft VisualC++。
C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。
1.6 C和C++
但是,C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目的。
㈣ C語言指針變數大小的問題
對於這個你只要記住一句秘訣就好,指針的大小僅僅取決指針本身的大小,不取決於指針指向的大小。 還有就是還有一個虛擬內存和物理地址的關系,有MMU映射,8086里有硬體完成一個地址偏移的過程,物理地址 = 基址*16 + 變址。
㈤ C語言各種存儲模式的區別最常用的存儲模式有哪些
各種存儲模式之間有什麼區別?
DOS用一種段地址結構來編址計算機的內存,每一個物理內存位置都有一個可通過段地址一偏移量的方式來訪問的相關地址。為了支持這種段地址結構,大多數C編譯程序都允許你用以下6種存儲模式來創建程序:
-----------------------------------------------------------------------
存儲模式 限制 所用指針
-----------------------------------------------------------------------
Tiny(微) 代碼、數據和棧一64KB Near
Small(小) 代碼一64KB Near
數據和棧一64KB Near
Medium(中) 代碼一1MB Far
數據和棧一64KB Near
Compact(緊縮) 代碼一64KB Near
數據和棧一1MB Far
Large(大) 代碼一1MB Far
數據和棧一1MB Far
Huge*(巨) 代碼一1MB Far
數據和棧一1MB Far
-----------------------------------------------------------------------
*注意:在Huge存儲模式下,靜態數據(如數組)可以超過64KB,這在其它存儲模式下都不行。
Tiny存儲模式的限制很嚴(所有的代碼、數據和棧都被限制在64KB中),它通常用來生成"COM"文件。由於內存地址的「安排」方式的限制,Huge模式會帶來顯著的性能損失,因此它很少被使用。
最常使用的存儲模式有哪些?
最常使用的存儲模式有Small,Medium和Large這幾種。Tiny存儲模式一般只用來生成".COM"文件,在現在的高性能計算機上,它已很少被使用了。Compact存儲模式允許程序有很少的代碼和大量的數據,在今天的商業應用環境中,它同樣也不常用了。由於Huge存儲模式的存儲地址機制導致它的效率較低,所以它也很少被使用。
一般說來,你應該根據程序的大小選用Small,Medium或Large中的一種存儲模式。對一個小的實用程序來說,Small存儲模式可能是最合適的,這種存儲模式允許有64KB的代碼和64KB數據和棧。如果程序有更大一些的數據要求,你可以使用Medium存儲模式,它允許程序有多達1MB的可定址數據空間。對於更大的程序,你應該使用Large存儲模式,它允許程序有1MB的代碼和1MB的數據和棧空間。
如果你在編寫一個Windows程序或者在使用一個32位編譯程序,那麼你最好使用Small存儲模式,因為這樣的環境並不受DOS程序的段地址結構的限制。
應該使用哪種存儲模式?
如果要生成一個「.COM」文件,匭朧褂肨iny存儲模式,即所有的代碼、數據和棧空間都被限制在64KB中。小的實用程序普遍使用這種存儲模式。相對較小的程序也可以使用Small存儲模式,只不過不必把整個程序都限制在64KB中。在Small存儲模式下,有64KB的代碼空間和64KB的數據和棧空間。除了用於小程序外,Small存儲模式還可用在Windows或32位編譯程序這樣的環境中,因為在這些環境中內存定址並不受DOS中16位的限制。
如果一個程序的代碼量相對較大而靜態數據量相對較小,你可以用Medium存儲模式來創建程序。如果程序很大(需要很多模塊,大量的代碼和數據),那麼你應該選用Large存儲模式,這種存儲模式常用在DOS下編寫商用軟體。
與Small,Medium和Large存儲模式相比,Compact和Huge存儲模式要少用得多。Cornpact存儲模式允許程序有大量的靜態數據和相對較少(64KB或更少)的代碼。滿足這種模式的程序很少,常常是一些轉移程序,它們有大量必須存到內存中的靜態轉移表。Huge存儲模式與Large存儲模式基本相同,只是Huge存儲模式允許程序有超過64KB的靜態數據。與Compact存儲模式相似,Huge存儲模式也很少被使用,這主要是因為它會帶來顯著的性能損失。由於Huge存儲模式的執行效率較低,因此你應該避免使用這種模式,除非你確實需要超過64KB的一個數組或其它靜態數據。記住,數組和其它程序結構可通過malloc()和calloc()在程序運行時進行動態分配,它們在本質上並不必須是靜態的。
㈥ C語言中一個關於near簡單問題
near、far、huge關鍵字的真正含義是什麼?
這三個關鍵字只能用於修飾函數、全局變數和指針變數,對於非指針類型的局部變數,這些關鍵字沒有實際意義。
這些關鍵字用於修飾函數時,huge的含義與far相同,用於指明該函數的調用方式為far調用方式,即調用時需要一個段值和一個段偏移組成的32bits調用地址,使用far call進行跳轉,跳轉前先壓棧保存當前CS:IP。near修飾函數時,用於指明該函數的調用方式為near調用方式,調用時只需要一個16bits的近地址,即當前CS的段內偏移。
當這三個關鍵字用於修飾指針時,near型指針實質上為16bits的無符號整型數,該整數給出了所指向變數在當前數據段內的偏移地址,也就是說,在使用near型指針定址時實際上是進行如下的定址操作:[DS:指針變數值]。對於far型的指針變數,可以定址1MB地址空間的任意一個地方,far型指針的實質是一個32bits的整型數,高16bits為段值,低16bits為段內偏移,Turbo C中在使用far型指針時,會先將高16bits放入ES寄存器中,然後再進行如下的定址操作:[ES:指針變數低16bits值]。對於hug型的指針變數,與far性指針變數的不同之處在於,在對far型指針變數進行+/++/-/--等操作時,far型指針變數保持段值不變(也就是高16bits),而只對段內偏移進行加減操作,所以會出現段內回繞的現象,而huge型的指針,在進行加減操作時將會自動的改變段值,不會出現段內回繞。所以給人的感覺就是huge指針能比far指針定址更大的內存空間。
㈦ c語言問題1
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
若有float x,則aizeof(x),和sizeof(float)兩種描述都正確,為什麼?
請詳細作答!
解析:
一、sizeof的概念
sizeof是C語言的一種單目操作符,如C語言的其他操作符++、--等。它並不是函數。sizeof操作符以位元組形式給出了其操作數的存儲大小。操作數可以是一個表達式或括在括弧內的類型名。操作數的存儲大小由操作數的類型決定。
二、sizeof的使用方法
1、用於數據類型
sizeof使用形式:sizeof(type)
數據類型必須用括弧括住。如sizeof(int)。
2、用於變數
sizeof使用形式:sizeof(var_name)或sizeof var_name
變數名可以不用括弧括住。如sizeof (var_name),sizeof var_name等都是正確形式。帶括弧的用法更普遍,大多數程序員採用這種形式。
注意:sizeof操作符不能用於函數類型,不完全類型或位欄位。不完全類型指具有未知存儲大小的數據類型,如未知存儲大小的數組類型、未知內容的結構或聯合類型、void類型等。
如sizeof(max)若此時變數max定義為int max(),sizeof(char_v) 若此時char_v定義為char char_v [MAX]且MAX未知,sizeof(void)都不是正確形式。
三、sizeof的結果
sizeof操作符的結果類型是size_t,它在頭文件<stddef.h>中typedef為unsigned int類型。該類型保證能容納實現所建立的最大對象的位元組大小。
1、若操作數具有類型char、unsigned char或signed char,其結果等於1。
ANSI C正式規定字元類型為1位元組。
2、int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double類型的sizeof 在ANSI C中沒有具體規定,大小依賴於實現,一般可能分別為2、2、2、2、4、4、4、8、10。
3、當操作數是指針時,sizeof依賴於編譯器。例如Microsoft C/C++7.0中,near類指針位元組數為2,far、huge類指針位元組數為4。一般Unix的指針位元組數為4。
4、當操作數具有數組類型時,其結果是數組的總位元組數。
你是不是把 aizeof(x)寫錯了。應該是sizeof(x),
㈧ c語言里大模式和小模式是什麼意思
模式是指C編譯器在編譯時所採用的地址空間位.
一般有tiny,small,large,compack, huge等。
tiny:64K以內,即在一個段內運行的模式,地址為16位,數據、代碼在一個段內
small:640K以內,地址為16位,但數據、代碼不在同一個段
large:可超過640K內存空間的限制
huge:地址為32位
㈨ 關於C語言
一、C語言的起源
C 語言是1972年由美國的Dennis Ritchie設計發明的, 並首次在UNIX操作系統
的 DEC PDP-11 計算機上使用。 它由早期的編程語言 BCPL( Basic Combind
Programming Language) 發展演變而來。在1970年, AT&T 貝爾實驗室的 Ken
Thompson根據BCPL語言設計出較先進的並取名為 B的語言, 最後導了C 語言的問世。
隨著微型計算機的日益普及, 出現了許多C 語言版本。由於沒有統一的標准,
使得這些C 語言之間出現了一些不一致的地方。為了改變這種情況, 美國國家標准
研究所(ANSI)為C 語言制定了一套ANSI標准, 成為現行的C語言標准。
二、C 語言的特點
C 語言發展如此迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的
功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。
用C 語言加上一些匯編語言子程序, 就更能顯示C 語言的優勢了, 象PC- DOS 、
WORDSTAR等就是用這種方法編寫的。歸納起來C 語言具有下列特點:
1. C是中級語言
它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以象
匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化, 即程序的各個部分除了必要的
信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調
試。C 語言是以函數形式提供給用戶的, 這些函數可方便的調用, 並具有多種循
環、條件語句控製程序流向, 從而使程序完全結構化。
3. C語言功能齊全
C 語言具有各種各樣的數據類型, 並引入了指針概念, 可使程序效率更高。另
外C 語言也具有強大的圖形功能, 支持多種顯示器和驅動器。而且計算功能、邏輯
判斷功能也比較強大, 可以實現決策目的。
4. C語言適用范圍大
C 語言還有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於
多種機型。
三、 Turbo C 概述
1 Turbo C 的產生與發展
Turbo C 是美國Borland 公司的產品,Borland公司是一家專門從事軟體開發、
研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo
Pascal, 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等)進行模擬。
Borland 公司後來又推出了面向對象的程序軟體包Turbo C+ + , 它繼承發展
Turbo C 2.0 的集成開發環境, 並包含了面向對象的基本思想和設計方法。
1991年為了適用Microsoft 公司的Windows 3.0 版本, Borland 公司又將Turbo
C++ 作了更新, 即Turbo C 的新一代產品Borlandc C++也已經問世了。
2 Turbo C 2.0基本配置要求
Turbo C 2.0可運行於IBM-PC系列微機, 包括XT, AT及IBM 兼容機。 此時要求
DOS 2.0或更高版本支持, 並至少需要448K的RAM, 可在任何彩、單色80列監視器上
運行。支持數學協處理器晶元, 也可進行浮點模擬, 這將加快程序的執行。
3 Turbo C 2.0內容簡介
Turbo C 2.0有六張低密軟盤(或兩張高密軟盤)。下面對Turbo C 2.0的主要文
件作一簡單介紹:
INSTALL.EXE 安裝程序文件
TC.EXE 集成編譯
TCINST.EXE 集成開發環境的配置設置程序
TCHELP.TCH 幫助文件
THELP.COM 讀取TCHELP.TCH的駐留程序
README 關於Turbo C的信息文件
TCCONFIG.EXE 配置文件轉換程序
MAKE.EXE 項目管理工具
TCC.EXE 命令行編譯
TLINK.EXE Turbo C系列連接器
TLIB.EXE Turbo C系列庫管理工具
C0?.OBJ 不同模式啟動代碼
C?.LIB 不同模式運行庫
GRAPHICS.LIB 圖形庫
EMU.LIB 8087模擬庫
FP87.LIB 8087庫
*.H Turbo C頭文件
*.BGI 不同顯示器圖形驅動程序
*.C Turbo C例行程序(源文件)
其中: 上面的?分別為:
T Tiny(微型模式)
S Small(小模式)
C Compact(緊湊模式)
M Medium(中型模式)
L Large(大模式)
H Huge(巨大模式)
四、 Turbo C 2.0的安裝和啟動
Turbo C 2.0的安裝非常簡單, 只要將1#盤插入A驅動器中, 在DOS的"A>" 下鍵
入:
A>INSTALL
即可, 此時屏幕上顯示三種選擇:
1. 在硬碟上創造一個新目錄來安裝整個Turbo C 2.0系統。
2. 對Turbo C 1.5更新版本。
這樣的安裝將保留原來對選擇項、顏色和編輯功能鍵的設置。
3. 為只有兩個軟盤而無硬碟的系統安裝Turbo C 2.0。
這里假定按第一種選擇進行安裝, 只要在安裝過程中按對盤號的提示, 順序插
入各個軟盤, 就可以順利地進行安裝, 安裝完畢將在C盤根目錄下建立一個TC 子目
錄, TC下還建立了兩個了目錄LIB和INCLUDE, LIB子目錄中存放庫文件, INCLUDE
子目錄中存放所有頭文件。
運行Turbo C 2.0時, 只要在TC 子目錄下鍵入TC並回車即可進入Turbo C 2. 0
集成開發環境。
五、 Turbo C 2.0集成開發環境的使用
進入Turbo C 2.0集成開發環境中後, 屏幕上顯示:
——————————————————————————————
File Edit Run Compile Project Options Debug Break/watch
┌————————————Edit——————————————┐
│ Line 1 Col 1 Insert Indent Tab File Unindent c:NONAME.C│
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│—————————Message——————————————— │
│ │
│ │
└————————————————————————————┘
F1-Help F5-Zoom F6-Switch F7-Trace F8-Step F9-Make F10-Menu
———————————————————————————————
其中頂上一行為Turbo C 2.0 主菜單, 中間窗口為編輯區, 接下來是信息窗
口, 最底下一行為參考行。這四個窗口構成了Turbo C 2.0的主屏幕, 以後的編程、
編譯、調試以及運行都將在這個主屏幕中進行。下面詳細介紹主菜單的內容。
1 主菜單
主菜單 在Turbo C 2.0主屏幕頂上一行, 顯示下列內容:
File Edit Run Compile Project Options Debug Break/watch
除Edit外, 其它各項均有子菜單, 只要用Alt加上某項中第一個字母(即大寫字
母), 就可進入該項的子菜單中。
(1)、File(文件)菜單
按Alt+F可進入File菜單, 該菜單包括以下內容:
.Load(載入)
裝入一個文件, 可用類似DOS的通配符(如*.C)來進行列表選擇。也可裝入其它
擴展名的文件, 只要給出文件名(或只給路徑)即可。該項的熱鍵為F3, 即只要在主
菜單中按F3即可進入該項, 而不需要先進入File菜單再選此項。
.Pick(選擇)
將最近裝入編輯窗口的8個文件列成一個表讓用戶選擇, 選擇後將該程序裝入
編輯區, 並將游標置在上次修改過的地方。其熱健為Alt-F3。
.New(新文件)
說明文件是新的, 預設文件名為NONAME.C, 存檔時可改名。
.Save(存檔)
將編輯區中的文件存檔, 若文件名是NONAME.C時, 將詢問是否更改文件名, 其
熱鍵為F2。
.Write to(存檔)
可由用戶給出文件名將編輯區中的文件存檔, 若該文件已存在, 則詢問要不要
覆蓋。
.Directory(目錄)
顯示目錄及目錄中的文件, 並可由用戶選擇。
.Change dir(改變目錄)
顯示當前目錄, 用戶可以改變顯示的目錄。
.Os shell(暫時退出)
暫時退出Turbo C 2.0到DOS提示符下, 此時可以運行DOS 命令, 若想回到
Turbo C 2.0中, 只要在DOS狀態下鍵入EXIT即可。
.Quit(退出)
退出Turbo C 2.0, 返回到DOS操作系統中, 其熱鍵為Alt+X。
說明:
以上各項可用游標鍵移動色棒進行選擇, 回車則執行。也可用每一項的第一個
大寫字母直接選擇。若要退到主菜單或從它的下一級菜單列表框退回均可用Esc鍵,
Turbo C 2.0所有菜單均採用這種方法進行操作, 以下不再說明。
(2)、Edit(編輯)菜單
按Alt+E可進入編輯菜單, 若再回車, 則游標出現在編輯窗口, 此時用戶可以
進行文本編輯。
編輯方法基本與wordstar相同, 可用F1鍵獲得有關編輯方法的幫助信息。
與編輯有關的功能鍵如下:
F1 獲得Turbo C 2.0編輯命令的幫助信息
F5 擴大編輯窗口到整個屏幕
F6 在編輯窗口與信息窗口之間進行切換
F10 從編輯窗口轉到主菜單
編輯命令簡介:
PageUp 向前翻頁
PageDn 向後翻頁
Home 將游標移到所在行的開始
End 將游標移到所在行的結尾
Ctrl+Y 刪除游標所在的一行
Ctrl+T 刪除游標所在處的一個詞
Ctrl+KB 設置塊開始
Ctrl+KK 設置塊結尾
Ctrl+KV 塊移動
Ctrl+KC 塊拷貝
Ctrl+KY 塊刪除
Ctrl+KR 讀文件
Ctrl+KW 存文件
Ctrl+KP 塊文件列印
Ctrl+F1 如果游標所在處為Turbo C 2.0庫函數, 則獲得有關該函數的幫助
信息
Ctrl+Q[ 查找Turbo C 2.0雙界符的後匹配符
Ctrl+Q] 查找Turbo C 2.0雙界符的前匹配符
說明:
a. Turbo C 2.0的雙界符包括以下幾種符號:
花括符 {和}
尖括符 <和>
圓括符 (和)
方括符 [和]
注釋符 /*和*/
雙引號 "
單引號 '
b. Turbo C 2.0在編輯文件時還有一種功能, 就是能夠自動縮進, 即游標定位
和上一個非空字元對齊。在編輯窗口中, Ctrl+OL為自動縮進開關的控制鍵。
(3)Run(運行)菜單
按Alt+R可進入Run菜單, 該菜單有以下各項:
.Run(運行程序)
運行由Project/Project name項指定的文件名或當前編輯區的文件。如果對上
次編譯後的源代碼未做過修改, 則直接運行到下一個斷點(沒有斷點則運行到結束)。
否則先進行編譯、連接後才運行, 其熱鍵為Ctrl+F9。
.Program reset(程序重啟)
中止當前的調試, 釋放分給程序的空間, 其熱鍵為Ctrl+F2。
.Go to cursor(運行到游標處)
調試程序時使用, 選擇該項可使程序運行到游標所在行。游標所在行必須為一
條可執行語句, 否則提示錯誤。其熱鍵為F4。
.Trace into(跟蹤進入)
在執行一條調用其它用戶定義的子函數時, 若用Trace into項, 則執行長條將
跟蹤到該子函數內部去執行, 其熱鍵為F7。
.Step over(單步執行)
執行當前函數的下一條語句, 即使用戶函數調用, 執行長條也不會跟蹤進函數
內部, 其熱鍵為F8。
.User screen(用戶屏幕)
顯示程序運行時在屏幕上顯示的結果。其熱鍵為Alt+F5。
(4)、Compile(編譯)菜單
按Alt+C可進入Compile菜單, 該菜單有以下幾個內容:
.Compile to OBJ(編譯生成目標碼)
將一個C源文件編譯生成.OBJ目標文件, 同時顯示生成的文件名。其熱鍵為
Alt+F9。
.Make EXE file(生成執行文件)
此命令生成一個.EXE的文件, 並顯示生成的.EXE文件名。其中.EXE文件名是下
面幾項之一。
a. 由Project/Project name說明的項目文件名。
b. 若沒有項目文件名, 則由Primary C file說明的源文件。
c. 若以上兩項都沒有文件名, 則為當前窗口的文件名。
.Link EXE file(連接生成執行文件)
把當前.OBJ文件及庫文件連接在一起生成.EXE文件。
.Build all(建立所有文件)
重新編譯項目里的所有文件, 並進行裝配生成.EXE文件。該命令不作過時檢查
(上面的幾條命令要作過時檢查, 即如果目前項目里源文件的日期和時間與目標文
件相同或更早, 則拒絕對源文件進行編譯)。
.Primary C file(主C文件)
當在該項中指定了主文件後, 在以後的編譯中, 如沒有項目文件名則編譯此項
中規定的主C文件, 如果編譯中有錯誤, 則將此文件調入編輯窗口, 不管目前窗口
中是不是主C文件。
.Get info(獲得有關當前路徑、源文件名、源文件位元組大小、編譯中的錯誤數
目、可用空間等信息。
(5)、Project(項目)菜單
按Alt+P可進入Project菜單, 該菜單包括以下內容:
.Project name(項目名)
項目名具有.PRJ的擴展名, 其中包括將要編譯、連接的文件名。例如有一個程
序由file1.c, file2.c, file3.c組成, 要將這3個文件編譯裝配成一個file.exe的
執行文件, 可以先建立一個file.prj的項目文件, 其內容如下:
file1.c
file2.c
file3.c
此時將file.prj放入Project name項中, 以後進行編譯時將自動對項目文件中
規定的三個源文件分別進行編譯。然後連接成file.exe文件。
如果其中有些文件已經編譯成.OBJ文件, 而又沒有修改過, 可直接寫上.OBJ擴
展名。此時將不再編譯而只進行連接。
例如: file1.obj
file2.c
file3.c
將不對file1.c進行編譯, 而直接連接。
說明:
當項目文件中的每個文件無擴展名時, 均按源文件對待, 另外, 其中的文件也
可以是庫文件, 但必須寫上擴展名.LIB。
.Break make on(中止編譯)
由用戶選擇是否在有Warining(警告)、Errors(錯誤)、Fatal Errors( 致命錯
誤)時或Link(連接)之前退出Make編譯。
.Auto dependencies(自動依賴)
當開關置為on, 編譯時將檢查源文件與對應的.OBJ文件日期和時間, 否則不進
行檢查。
.Clear project(清除項目文件)
清除Project/Project name中的項目文件名。
.Remove messages(刪除信息)
把錯誤信息從信息窗口中清除掉。
(6)、Options(選擇菜單)
按Alt+O可進入Options菜單, 該菜單對初學者來說要謹慎使用。
.Compiler(編譯器)
本項選擇又有許多子菜單, 可以讓用戶選擇硬體配置、存儲模型、調試技術、
代碼優化、對話信息控制和宏定義。這些子菜單如下:
Model
共有Tiny, small, medium, compact, large, huge 六種不同模式可由同戶選
擇。
Define
打開一個宏定義框, 同戶可輸入宏定義。多重定義可同分號, 賦值可用等號。
Code generation
它又有許多任選項, 這些任選項告訴編譯器產生什麼樣的目標代碼。
Calling convention 可選擇C或Pascal方式傳遞參數。
Instruction set 可選擇8088/8086或80186/80286指令系列。
Floating point 可選擇模擬浮點、數學協處理器浮點或無浮點運算。
Default char type 規定char的類型。
Alignonent 規定地址對准原則。
Merge plicate strings 作優化用, 將重復的字元串合並在一起。
Standard stack frame 產生一個標準的棧結構。
Test stack overflow 產生一段程序運行時檢測堆棧溢出的代碼。
Line number 在.OBJ文件中放進行號以供調試時用。
OBJ debug information 在.OBJ文件中產生調試信息。
Optimization
Optimize for 選擇是對程序小型化還是對程序速度進行優
化處理。
Use register variable 用來選擇是否允許使用寄存器變數。
Register optimization 盡可能使用寄存器變數以減少過多的取數操
作。
Jump optimization 通過去除多餘的跳轉和調整循環與開關語句
的辦法, 壓縮代碼。
Source
Indentifier length 說明標識符有效字元的個數, 默認為32個。
Nested comments 是否允許嵌套注釋。
ANSI keywords only 是只允許ANSI關鍵字還是也允許Turbo C
2.0關鍵字
Error
Error stop after 多少個錯誤時停止編譯, 默認為25個。
Warning stop after 多少個警告錯誤時停止編譯, 默認為100個。
Display warning
Portability warning 移植性警告錯誤。
ANSI Violations 侵犯了ANSI關鍵字的警告錯誤。
Common error 常見的警告錯誤。
Less common error 少見的警告錯誤。
Names 用於改變段(segment)、 組( group) 和類
(class)的名字, 默認值為CODE,DATA,BSS。
.Linker(連接器)
本菜單設置有關連接的選擇項, 它有以下內容:
Map file menu 選擇是否產生.MAP文件。
Initialize segments 是否在連接時初始化沒有初始化的段。
Devault libraries 是否在連接其它編譯程序產生的目標文件時去尋
找其預設庫。
Graphics library 是否連接graphics庫中的函數。
Warn plicate symbols 當有重復符號時產生警告信息。
Stack warinig 是否讓連接程序產生No stack的警告信息。
Case-sensitive link 是否區分大、小寫字。
.Environment(環境)
本菜單規定是否對某些文件自動存檔及製表鍵和屏幕大小的設置
Message tracking
Current file 跟蹤在編輯窗口中的文件錯誤。
All files 跟蹤所有文件錯誤。
Off 不跟蹤。
Keep message 編譯前是否清除Message窗口中的信息。
Config auto save 選on時, 在Run, Shell或退出集成開發環境之前,
如果Turbo C 2.0的配置被改過, 則所做的改動
將存入配置文件中。選off時不存。
Edit auto save 是否在Run或Shell之前, 自動存儲編輯的源文件。
Backup file 是否在源文件存檔時產生後備文件(.BAK文件)。
Tab size 設置製表鍵大小, 默認為8。
Zoomed windows 將現行活動窗口放大到整個屏幕, 其熱鍵為F5。
Screen size 設置屏幕文本大小。
.Directories(路徑)
規定編譯、連接所需文件的路徑, 有下列各項:
Include directories 包含文件的路徑, 多個子目錄用";"分開。
Library directories 庫文件路徑, 多個子目錄用";"分開。
Output directoried 輸出文件(.OBJ, .EXE, .MAP文件)的目錄。
Turbo C directoried Turbo C 所在的目錄。
Pick file name 定義載入的pick文件名, 如不定義則從current
pick file中取。
.Arguments(命令行參數)
允許用戶使用命令行參數。
.Save options(存儲配置)
保存所有選擇的編譯、連接、調試和項目到配置文件中, 預設的配置文件為
TCCONFIG.TC。
.Retrive options
裝入一個配置文件到TC中, TC將使用該文件的選擇項。
(7)、Debug(調試)菜單
按Alt+D可選擇Debug菜單, 該菜單主要用於查錯, 它包括以下內容:
Evaluate
Expression 要計算結果的表達式。
Result 顯示表達式的計算結果。
New value 賦給新值。
Call stack 該項不可接觸。而在Turbo C debuger 時用於檢
查堆棧情況。
Find function 在運行Turbo C debugger時用於顯示規定的函數。
Refresh display 如果編輯窗口偶然被用戶窗口重寫了可用此恢復
編輯窗口的內容。
(8)、Break/watch(斷點及監視表達式)
按Alt+B可進入Break/watch菜單, 該菜單有以下內容:
Add watch 向監視窗口插入一監視表達式。
Delete watch 從監視窗口中刪除當前的監視表達式。
Edit watch 在監視窗口中編輯一個監視表達式。
Remove all watches 從監視窗口中刪除所有的監視表達式。
Toggle breakpoint 對游標所在的行設置或清除斷點。
Clear all breakpoints 清除所有斷點。
View next breakpoint 將游標移動到下一個斷點處。
六 Turbo C 2.0的配置文件
所謂配置文件是包含Turbo C 2.0有關信息的文件, 其中存有編譯、連接的選
擇和路徑等信息。
可以用下述方法建立Turbo C 2.0的配置:
1. 建立用戶自命名的配置文件
可以從Options菜單中選擇Options/Save options命令, 將當前集成開發環境
的所有配置存入一個由用戶命名的配置文件中。下次啟動TC時只要在DOS下鍵入:
tc/c<用戶命名的配置文件名>
就會按這個配置文件中的內容作為Turbo C 2.0的選擇。
2. 若設置Options/Environment/Config auto save 為on, 則退出集成開發環
境時, 當前的設置會自動存放到Turbo C 2.0配置文件TCCONFIG.TC中。Turbo C 在
啟動時會自動尋找這個配置文件。
3. 用TCINST設置Turbo C的有關配置, 並將結果存入TC.EXE中。Turbo C 在啟
動時, 若沒有找到配置文件, 則取TC.EXE中的預設值。