c语言最小点对问题_C语言教程(一):程序开发理论基础!
前言:
1、本系列教程適用于剛開始學(xué)習(xí) C 語言的同學(xué),或者初級(jí)開發(fā)者,或者想系統(tǒng)詳細(xì)了解 C 語言的小伙伴。
2、本系列教程會(huì)從C語言基礎(chǔ)到 C 語言高級(jí)語法,包含 C 語言所有系列。
C語言簡(jiǎn)介
什么是 C 語言
C 語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C 語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管 C 語言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的 C 語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱 MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。
二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國(guó)國(guó)家標(biāo)準(zhǔn)局為C語言訂立了一套完整的國(guó)際標(biāo)準(zhǔn)語法,稱為 ANSI C,作為 C 語言最初的標(biāo)準(zhǔn)。
簡(jiǎn)單來說:C 語言是一門簡(jiǎn)單的編程語言,C 語言的語法標(biāo)準(zhǔn)由美國(guó)國(guó)家標(biāo)準(zhǔn)局指定。C 語言有很多底層處理功能,而且有良好的跨平臺(tái)性。
C 語言的優(yōu)勢(shì)
C 語言發(fā)展至今很多當(dāng)時(shí)的優(yōu)勢(shì),到現(xiàn)在已經(jīng)不是什么優(yōu)勢(shì),但是有幾個(gè)點(diǎn)目前還是其他高級(jí)語言所不能媲美的:
1、運(yùn)行效率:C 語言可以直接對(duì)內(nèi)存和硬件進(jìn)行操作,C 語言具有很多直接訪問物理地址的功能,可以直接訪問內(nèi)外存儲(chǔ)器,還可以進(jìn)行各種位操作。
2、可移植性好:目前大部分硬件和常用的操作系統(tǒng)都支持C 語言開發(fā),因此如果使用C語言開發(fā)軟件,移植性特別高,基本不用修改,可以在其他系統(tǒng)平臺(tái)上運(yùn)行。這個(gè)是其他高級(jí)語言很難單獨(dú)做到的
3、語法簡(jiǎn)單,語言簡(jiǎn)潔:C 語言是目前程序設(shè)計(jì)中規(guī)模最小的語言之一,關(guān)鍵字很少,總共才32個(gè)關(guān)鍵字。而且語法比較簡(jiǎn)單,會(huì)點(diǎn)簡(jiǎn)單英語的同學(xué),都能看懂一些基本語法。
C 語言是面向過程的,運(yùn)行過程是一步一步的,很像我們平常做事情似得,第一步干什么,第二步干什么,等等。。。
所以前期理解起來也比較簡(jiǎn)單。
程序
什么是程序?
程序是一組具有完成特定任務(wù)或者功能的計(jì)算機(jī)指令。首先為了完成特定功能,其次是一組計(jì)算機(jī)指令(代碼)。
程序執(zhí)行過程
程序的執(zhí)行過程是:預(yù)編譯 — 編譯 — 匯編 — 鏈接 — 執(zhí)行:
預(yù)編譯:也叫預(yù)處理階段,預(yù)處理器會(huì)把源程序中的 # 開頭的命令替換掉,直接插入到程序文本中,最后生成另外一個(gè) C 程序,通常是以 .i 作為文件擴(kuò)展名。
編譯:這個(gè)階段編譯器會(huì)把 .i 文件編譯成一個(gè)匯編語言程序(.s文件)。匯編語言是非常有用的,它為不同高級(jí)語言的不同編譯器提供了通用的輸出語言。
匯編:這個(gè)階段就是把匯編語言打包成一個(gè)二進(jìn)制文件,也就是說到了這一步才完成了從高級(jí)語言到機(jī)器語言的轉(zhuǎn)化。這個(gè)階段的代碼已經(jīng)是二進(jìn)制文件了(.o文件),如果我們打開這個(gè) .o 文件,我們將會(huì)看到一堆亂碼。
鏈接:到了這個(gè)階段,就是把所有的所有的 .o 文件合并到一起來完成一個(gè)可執(zhí)行文件,也就是把每個(gè)獨(dú)立功能的文件合并到一起,然后被加載到內(nèi)存,由系統(tǒng)執(zhí)行。
編輯器和編譯器
編輯器:什么是編輯器呢?就是寫代碼用的工具,注意只是寫代碼用的,比如記事本就是編輯器,word 也是編輯器,sublime 也是編輯器。
有人會(huì)問那么它在程序執(zhí)行過程當(dāng)中屬于哪個(gè)階段呢?
答:還沒有在其中任何一個(gè)階段。咱們用編譯器主要是為了寫代碼。
編譯器:上面已經(jīng)說了,編譯器就是把 .i 文件編譯成一個(gè)匯編語言程序。這種編譯器是指狹義上的編譯器。
和匯編器、鏈接器都是同級(jí)別的工具。我這里講的編譯器是指廣義上的編譯器,在這里大家只需記住這里所講的編譯器是包含了:編輯器、預(yù)編譯器、編譯器、匯編器、鏈接器的復(fù)合型編譯器,我們只需使用這樣一個(gè)工具就可以完成程序的編寫到執(zhí)行的過程。
對(duì)于熱愛編程的人來說,有一群一起學(xué)習(xí)的小伙伴很重要!如果你感興趣或者有需求的話,筆者的專欄有一個(gè)編程零基礎(chǔ)入門學(xué)習(xí)交流俱樂部,還有學(xué)習(xí)視頻文件,歡迎初學(xué)者和正在進(jìn)階中的小伙伴們!
總結(jié)
以上是生活随笔為你收集整理的c语言最小点对问题_C语言教程(一):程序开发理论基础!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在服务器使用mysql_Linux服务器
- 下一篇: 凯立德3d实景地图_360全景地图、3D