C語(yǔ)言第1章C語(yǔ)言概述.ppt_第1頁(yè)
C語(yǔ)言第1章C語(yǔ)言概述.ppt_第2頁(yè)
C語(yǔ)言第1章C語(yǔ)言概述.ppt_第3頁(yè)
C語(yǔ)言第1章C語(yǔ)言概述.ppt_第4頁(yè)
C語(yǔ)言第1章C語(yǔ)言概述.ppt_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章C語(yǔ)言概述,蘭州理工大學(xué),第一章 C語(yǔ)言概述,1.1 C語(yǔ)言的起源 1.2 C語(yǔ)言是中級(jí)語(yǔ)言 1.3 C語(yǔ)言是結(jié)構(gòu)化語(yǔ)言 1.4 C語(yǔ)言是面向程序員的語(yǔ)言 1.5 編譯和解釋 1.6 C語(yǔ)言程序結(jié)構(gòu) 1.7 術(shù) 語(yǔ) 1.8 幾種集成編譯環(huán)境,1.1 C語(yǔ)言的起源,1.1 C語(yǔ)言的起源,C語(yǔ)言的發(fā)展過(guò)程,C Dennis Ritchie (1973),B Ken Thompson 美國(guó)貝爾實(shí)驗(yàn)室(1970),BCPL( Basic Combined Programming Language) Martin Richards 英國(guó)劍橋大學(xué)(1967年),BCPL和B語(yǔ)言不支持?jǐn)?shù)據(jù)類型,C語(yǔ)言

2、支持?jǐn)?shù)據(jù)類型,1.1 C語(yǔ)言的起源,C語(yǔ)言的發(fā)展過(guò)程 ALGOL60- CPL- BCPC- B- C- 標(biāo)準(zhǔn)C- ANSI C- ISO C ALGOL60:一種面向問(wèn)題的高級(jí)語(yǔ)言。離硬件較遠(yuǎn),不適合編寫系統(tǒng)程序。 1963年,劍橋大學(xué)將ALGOL60發(fā)展成CPL(Combined Programming Language):CPL規(guī)模大,實(shí)現(xiàn)困難。 1967年,劍橋大學(xué)的Matin Richards 對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,產(chǎn)生了BCPL語(yǔ)言。 1970年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson對(duì)BCPL進(jìn)一步簡(jiǎn)化成一種很簡(jiǎn)單接近硬件的語(yǔ)言-B語(yǔ)言。并用B語(yǔ)言寫了第一個(gè)UNIX操作系統(tǒng)。

3、 B語(yǔ)言精練、接近硬件,但太簡(jiǎn)單,數(shù)據(jù)無(wú)類型。,1.1 C語(yǔ)言的起源,C語(yǔ)言的發(fā)展過(guò)程 ALGOL60- CPL- BCPC- B- C- 標(biāo)準(zhǔn)C- ANSI C- ISO C 1973年,貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出一種新的語(yǔ)言-C語(yǔ)言。C語(yǔ)言誕生后,很快用C語(yǔ)言改寫Unix ,并移植到其它計(jì)算機(jī)系統(tǒng)。 1977年Dennis M.Ritchie 發(fā)表了不依賴具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本可移植的C語(yǔ)言編譯程序。 1978年貝爾實(shí)驗(yàn)室正式發(fā)表了語(yǔ)言。同時(shí)由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUA

4、GE”一書K /* printf(世界, 你好n); */ getch(); ,1.6 C語(yǔ)言程序結(jié)構(gòu),例2: /* exsampe 2 */ #include stdio.h main() int a=5, b=6; int c=a+b; printf(%d,c); getch(); ,1.6 C語(yǔ)言程序結(jié)構(gòu),C語(yǔ)言程序有以下特點(diǎn): C程序都由一個(gè)或多個(gè)函數(shù)組成(C是函數(shù)型語(yǔ)言,函數(shù)是C語(yǔ)言程序的基本單元); 有且僅有一個(gè)main()函數(shù),稱為主函數(shù)。它在程序開始運(yùn)行時(shí)首先被調(diào)入執(zhí)行。 C程序是由一個(gè)個(gè)語(yǔ)句組成,語(yǔ)句均由分號(hào)“;”結(jié)尾; 一行可以寫多個(gè)語(yǔ)句;一個(gè)語(yǔ)句可以寫在多行上; C程序用

5、大括號(hào)“ ”表示程序的范圍和層次關(guān)系。每個(gè)函數(shù)、復(fù)合語(yǔ)句都用一對(duì)大括號(hào)括起來(lái); C程序的關(guān)鍵字(和變量)習(xí)慣上使用小寫英文字母。而宏定義的“宏名”通常用大寫字母; C程序通常會(huì)有#號(hào)開頭的一些編譯預(yù)處理代碼行,如:包含頭文件(*.h),宏定義等。 程序可以有注釋,用“/ * */”或“/”標(biāo)注。,1.6.1 庫(kù)和鏈接,C語(yǔ)言編譯器的實(shí)現(xiàn)者已編寫了大部分常見的通用函數(shù),即標(biāo)準(zhǔn)函數(shù)庫(kù),以完成最常見的任務(wù)。 標(biāo)準(zhǔn)函數(shù)庫(kù)作為構(gòu)成程序的基本構(gòu)件。標(biāo)準(zhǔn)函數(shù)庫(kù)中的庫(kù)函數(shù)可以反復(fù)使用(調(diào)用)。 鏈接器(Linker)把編寫的程序同標(biāo)準(zhǔn)函數(shù)庫(kù)中找到的目標(biāo)碼結(jié)合起來(lái),稱為鏈接(Link)。鏈接生成可執(zhí)行程序。 某

6、些C編譯程序帶有自己的鏈接程序,有些則使用操作系統(tǒng)提供的標(biāo)準(zhǔn)鏈接程序。 程序員也可以編寫自己的函數(shù),這些函數(shù)也可以放在一個(gè)庫(kù)(可能是標(biāo)準(zhǔn)函數(shù)庫(kù),也可能是自己的函數(shù)庫(kù))中,反復(fù)使用(編譯程序通常會(huì)提供一個(gè)庫(kù)管理應(yīng)用程序)。,1.6.1 庫(kù)和鏈接,函數(shù)庫(kù)中的函數(shù)是可重定位(Relocaltable)的,意味著其中機(jī)器碼指令的內(nèi)存地址并未絕對(duì)確定,只有偏移量是確定的。把程序與標(biāo)準(zhǔn)函數(shù)庫(kù)中的函數(shù)相鏈接時(shí),內(nèi)存偏移量被用來(lái)產(chǎn)生實(shí)際地址。,1.6.2 分別編譯,多數(shù)短程序都可以完全放進(jìn)一個(gè)源文件; 隨著程序長(zhǎng)度的增加,編譯時(shí)間也大幅度增加(常使人無(wú)法忍耐); 因此,C語(yǔ)言允許將一個(gè)程序分塊寫在多個(gè)文件中,

7、每一個(gè)文件可單獨(dú)編譯。 分別編譯的優(yōu)點(diǎn)是,當(dāng)程序代碼改變后,只需重新編譯改變了的文件,而不必重新編譯全部程序。這可以節(jié)省大量時(shí)間。,1.6.3 編譯C語(yǔ)言程序,編譯C語(yǔ)言程序包括以下三步: (1)程序設(shè)計(jì)(編輯源程序,或稱源代碼); (2)程序編譯(生成目標(biāo)碼); (3)目標(biāo)碼與庫(kù)函數(shù)鏈接,生成可執(zhí)行代碼 。 編譯、鏈接與運(yùn)行過(guò)程中通常會(huì)有錯(cuò)誤,查錯(cuò)與改正錯(cuò)誤的過(guò)程通常稱為調(diào)試。 大多編譯程序提供一個(gè)集成開發(fā)環(huán)境 (Integrated Development Environment IDE),程序的編輯、編譯、鏈接、調(diào)試與運(yùn)行是一體化的。 也有的編譯程序沒(méi)有集成開發(fā)環(huán)境,程序員必須用獨(dú)立的編

8、輯程序編程。 某些字處理軟件產(chǎn)生的文件含控制碼和非打印字符(包括漢字及全角符號(hào)),編譯程序會(huì)拒絕接受。,1.6.3 編譯C語(yǔ)言程序,右圖是編譯C語(yǔ)言程序的全過(guò)程。,1.6.4 C語(yǔ)言的內(nèi)存映象,一個(gè)已完成編譯的C語(yǔ)言程序取得并使用四塊在邏輯上不同、且用于不同目的的內(nèi)存區(qū)域。 第一塊區(qū)域含有程序代碼,相鄰的一塊內(nèi)存區(qū)域存放全局變量; 其它兩塊分別是: 棧(Stack): 用來(lái)處理程序運(yùn)行的許多事務(wù),保存函數(shù)調(diào)用時(shí)的返回地址、函數(shù)的變?cè)⒕植孔兞恳约癈PU的當(dāng)前狀態(tài)。 堆(Heap) :是一個(gè)自由內(nèi)存區(qū)域,程序可利用C語(yǔ)言的動(dòng)態(tài)分配函數(shù),由此取得用于鏈表和樹等數(shù)據(jù)結(jié)構(gòu)所需要的內(nèi)存。,1.6.4 C

9、語(yǔ)言的內(nèi)存映象,圖:,1.7 術(shù)語(yǔ),源代碼(Source Code):用戶可編輯、閱讀的程序文本,源代碼是C語(yǔ)言編譯程序的輸入。 目標(biāo)碼(Object Code):由源代碼經(jīng)編譯器編譯而產(chǎn)生的機(jī)器碼。目標(biāo)碼是鏈接程序的輸入。 鏈接程序(鏈接器)(Linker):可把分別編譯產(chǎn)生的目標(biāo)碼與標(biāo)準(zhǔn)庫(kù)函數(shù)鏈接為完整的可執(zhí)行程序(.exe)的軟件程序。 函數(shù)庫(kù)(Library):存放可被用戶程序引用的標(biāo)準(zhǔn)函數(shù)。包括所有I/O操作及其它有用的子程序。 編譯時(shí)(Compile Time):編譯時(shí)出現(xiàn)的事件。在編譯期間出現(xiàn)的錯(cuò)誤通常是語(yǔ)法錯(cuò)誤。 運(yùn)行時(shí)(Run Time):運(yùn)行時(shí)出現(xiàn)的事件。,1.8 幾種集成

10、編譯環(huán)境,1.8 幾種集成編譯環(huán)境,全國(guó)計(jì)算機(jī)等級(jí)考試-二級(jí)C語(yǔ)言程序設(shè)計(jì)(08版),1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,例子:,1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,利用Visual C+ 6.0集成環(huán)境開發(fā)C程序的過(guò)程如下: 1.啟動(dòng)Visual C+ 6.0環(huán)境 2.編輯源程序文件 3.編譯和連接 4.執(zhí)行,1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,1.啟動(dòng)Visual C+ 6.0環(huán)境,方法:?jiǎn)螕?“開始”-“程序”-“Microsoft Visual studio 6.0”-“Microsoft Visual C+ 6.0”命令,啟動(dòng)Visual C+,V

11、C+6.0主窗口如下:,菜單欄,項(xiàng)目工作區(qū),標(biāo)題欄,輸出區(qū),工具欄,狀態(tài)欄,文件編輯區(qū),1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,2. 編輯源程序文件 (1)建立新工程項(xiàng)目 單擊“文件”-“新建”,彈出“新建”對(duì)話框。 單擊“工程”選項(xiàng)卡;單擊“Win32 Console Application”選項(xiàng);“工程”文件框中輸入項(xiàng)目名,如“gc1”和“位置”框輸入或選擇新項(xiàng)目所在位置,單擊“確定”按鈕。 彈出“Win32 Console Application Step 1of 1”對(duì)話框。 單擊“An empty project”按鈕和“完成”按鈕。系統(tǒng)顯示“新建工程信息”對(duì)話框。單擊“確定

12、”按鈕。,1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,2. 編輯源程序文件,1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,2. 編輯源程序文件 (2)建立新項(xiàng)目中的文件 單擊“文件”-“新建”,彈出“新建”對(duì)話框。 選擇“文件”選項(xiàng)卡。單擊“C+ Source File”選項(xiàng),在“文件”文件框中輸入文件名,單擊“確定”按鈕。系統(tǒng)自動(dòng)返回VC6主窗口。 顯示文件編輯區(qū)窗口,在文件編輯區(qū)窗口輸入源程序文件。,1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,2. 編輯源程序文件,1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,3. 編譯和連接 方法一:選擇主窗口菜單欄中“編譯”菜單項(xiàng);系統(tǒng)彈出下拉菜單,選擇“構(gòu)件”菜單命令。 方法二:?jiǎn)螕糁鞔翱诰幾g工具欄上的 “Build”按鈕進(jìn)行編譯和連接。,1.8.1 Visual C+ 6.0運(yùn)行環(huán)境,4. 執(zhí)行 方法一:?jiǎn)螕簟熬幾g”菜單中“執(zhí)行”命令。 方法二:?jiǎn)螕糁鞔翱诰幾g工具欄上的 “Build Execute”按鈕來(lái)執(zhí)行編譯連接后的程序。,1.8.2 Turbo C 2.0運(yùn)行環(huán)境,Turbo C 2.0界面如下:,1.8.3 WIN-TC運(yùn)行環(huán)境,1.8.3 WIN-TC運(yùn)行環(huán)境,由于Turbo C 2.0(簡(jiǎn)稱TC2.0)是基于DOS的,不支持鼠標(biāo)操作、字體大小不能調(diào)整、文本復(fù)制步驟繁瑣、不支持中文輸入輸出

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論