c語言為什麼電腦能讀懂
Ⅰ 為什麼計算機能讀懂機器碼 / 網路技術編程
自學不容易啊。 第一步特別難。許多實踐的東西,不跟著過來人做,需要很大的代價的。 也許您可以看看 Mooc 或網路公開課方面有沒有合適的課程。
編程,建議從 Java 學習開始。或者從C語言開始(C很難,但真正明白後,對計算機就掌握的非常深入了)。當然,基礎的邏輯、離散數學方面的知識也應該學習。
Ⅱ 為什麼C語言程序能讀懂卻不會編呢
[編輯本段]學習C語言
在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?相應的根本就沒學習,又談何學的好?
學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。學習C語言就是要經過幾個反復,才能前後貫穿,積累應該掌握的C知識。
那麼,我們如何學好《C程序設計》呢?
一.學好C語言的運算符和運算順序
這是學好《C程序設計》的基礎,C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運算符按優先順序不同分類,《C程序設計》運算符可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2、13級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序.
二.學好C語言的四種程序結構
(1)順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。 順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。
(2) 分支結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
學習分支結構不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
①if(條件)
{分支體}
這種分支結構中的分支體可以是一條語句,此時「{ }」可以省略,也可以是多條語句即復合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x<0時其絕對值是為x的反號,因此程序段為:if(x<0) x=-x;
②if(條件)
{分支1}
else
{分支2}
這是典型的分支結構,如果條件成立,執行分支1,否則執行分支2,分支1和分支2都可以是1條或若干條語句構成。如:求ax^2+bx+c=0的根
分析:因為當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac<0)有兩個共軛復根。其程序段如下:
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x2=(-b-sqrt(d))/2a;
printf(「x1=%8.4f,x2=%8.4f\n」,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(「x1=%8.4f+%8.4fi\n」r, i);
printf(「x2=%8.4f-%8.4fi\n」r,i)
}
③嵌套分支語句:其語句格式為:
if(條件1) {分支1};
else if(條件2) {分支2}
else if(條件3) {分支3}
……
else if(條件n) {分支n}
else {分支n+1}
嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套後,語句結構變得非常復雜,對於程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。
④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else 語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。
(3)循環結構:
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do ?Cwhile循環和for循環。四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤,在學習中我們主要學習while、do…while、for三種循環。常用的三種循環結構學習的重點在於弄清它們相同與不同之處,以便在不同場合下使用,這就要清楚三種循環的格式和執行順序,將每種循環的流程圖理解透徹後就會明白如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。特別要注意在循環體內應包含趨於結束的語句(即循環變數值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
在學完這三個循環後,應明確它們的異同點:用while和do…while循環時,循環變數的初始化的操作應在循環體之前,而for循環一般在語句1中進行的;while 循環和for循環都是先判斷表達式,後執行循環體,而do…while循環是先執行循環體後判斷表達式,也就是說do…while的循環體最少被執行一次,而while 循環和for就可能一次都不執行。另外還要注意的是這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,是不能用break和 continue語句進行控制的。
順序結構、分支結構和循環結構並不彼此孤立的,在循環中可以有分支、順序結構,分支中也可以有循環、順序結構,其實不管哪種結構,我們均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現各種演算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
(4)模塊化程序結構
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。 因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。
三.掌握一些簡單的演算法
編程其實一大部分工作就是分析問題,找到解決問題的方法,再以相應的編程語言寫出代碼。這就要求掌握演算法,根據我們的《C程序設計》教學大綱中,只要求我們掌握一些簡單的演算法,在掌握這些基本演算法後,要完成對問題的分析就容易了。如兩個數的交換、三個數的比較、選擇法排序和冒泡法排序,這就要求我們要清楚這些演算法的內在含義
結語:當我們把握好上述幾方面後,只要同學們能克服畏難、厭學、上課能專心聽講,做好練習與上機調試,其實C語言並不難學
C源程序的關鍵字---------------------------------------------------------------------------------------
所謂關鍵字就是已被C語言本身使用, 不能作其它用途使用的字。例如關鍵字不能用作變數名、函數名等
由ANSI標準定義的C語言關鍵字共32個 :
auto double int struct break else long switch
case enum register typedef char extern return union
const float short unsigned continue for signed void
default goto sizeof volatile do if while static
根據關鍵字的作用,可以將關鍵字分為數據類型關鍵字和流程式控制制關鍵字兩大類。
1 數據類型關鍵字
A基本數據類型(5個)
void :聲明函數無返回值或無參數,聲明無類型指針,顯式丟棄運算結果
char :字元型類型數據,屬於整型數據的一種
int :整型數據,通常為編譯器指定的機器字長
float :單精度浮點型數據,屬於浮點數據的一種
double :雙精度浮點型數據,屬於浮點數據的一種
B 類型修飾關鍵字(4個)
short :修飾int,短整型數據,可省略被修飾的int。
long :修飾int,長整形數據,可省略被修飾的int。
signed :修飾整型數據,有符號數據類型
unsigned :修飾整型數據,無符號數據類型
C 復雜類型關鍵字(5個)
struct :結構體聲明
union :共用體聲明
enum :枚舉聲明
typedef :聲明類型別名
sizeof :得到特定類型或特定類型變數的大小
D 存儲級別關鍵字(6個)
auto :指定為自動變數,由編譯器自動分配及釋放。通常在棧上分配
static :指定為靜態變數,分配在靜態變數區,修飾函數時,指定函數作用域為文件內部
register :指定為寄存器變數,建議編譯器將變數存儲到寄存器中使用,也可以修飾函數形參,建議編譯器通過寄存器而不是堆棧傳遞參數
extern :指定對應變數為外部變數,即標示變數或者函數的定義在別的文件中,提示編譯器遇到此變數和函數時在其他模塊中尋找其定義。
const :與volatile合稱「cv特性」,指定變數不可被當前線程/進程改變(但有可能被系統或其他線程/進程改變)
volatile :與const合稱「cv特性」,指定變數的值有可能會被系統或其他進程/線程改變,強制編譯器每次從內存中取得該變數的值
2 流程式控制制關鍵字
A 跳轉結構(4個)
return :用在函數體中,返回特定值(或者是void值,即不返回值)
continue :結束當前循環,開始下一輪循環
break :跳出當前循環或switch結構
goto :無條件跳轉語句
B 分支結構(5個)
if :條件語句
else :條件語句否定分支(與if連用)
switch :開關語句(多重分支語句)
case :開關語句中的分支標記
default :開關語句中的「其他」分治,可選。
C 循環結構(3個)
for :for循環結構,for(1;2;3)4;的執行順序為1->2->4->3->2...循環,其中2為循環條件
do :do循環結構,do 1 while(2); 的執行順序是 1->2->1...循環,2為循環條件
while :while循環結構,while(1) 2; 的執行順序是1->2->1...循環,1為循環條件
以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。
Ⅲ 編程語言是怎麼回事機器不是只能讀代碼嗎包括C語言之類的,裡面不是有英文嗎,那機器能讀懂嗎
編譯器會把c語言編譯成為匯編,每條匯編指令對應一條機器碼,也就是二進制0,1碼,cpu只識別二進制碼,而且,不同的cpu有不同架構,電腦基本都是x86架構,所以,是x86匯編,手機是arm架構,採用arm匯編,所以,電腦的程序不可以在手機上運行,除非採用解析器,進行匯編之間的解析,總之,所有的語言都會由編譯器編譯成匯編,再轉換成二進制碼,再通過地址的鏈接,才最終成為可執行程序
Ⅳ 計算機語言是怎麼被計算機讀懂的
計算機語言:計算機語言通常是一個能完整、准確和規則地表達人們的意圖,並用以指揮或控制計算機工作的「符號系統」。
計算機語言通常分為三類:即機器語言,匯編語言和高級語言。 (了解內容一)
1. 機器語言
機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是計算機的設計者通過計算機的硬體結構賦予計算機的操作功能。機器語言具有靈活、直接執行和速度快等特點。
用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作,編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。現在,除了計算機生產廠家的專業人員外,絕大多數程序員已經不再去學習機器語言了。
2.匯編語言
為了克服機器語言難讀、難編、難記和易出錯的缺點,人們就用與代碼指令實際含義相近的英文縮寫詞、字母和數字等符號來取代指令代碼(如用ADD表示運算符號「+」的機器代碼),於是就產生了匯編語言。所以說,匯編語言是一種用助記符表示的仍然面向機器的計算機語言。匯編語言亦稱符號語言。匯編語言由 於是採用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器並較好地發揮機器的特性,得到質量較高的程序。
匯編語言中由於使用了助記符號,用匯編語言編制的程序送入計算機,計算機不能象用機器語言編寫的程序一樣直接識別和執行,必須通過預先放入計算機的「匯編程序「的加工和翻譯,才能變成能夠被計算機識別和處理的二進制代碼程序。用匯編語言等非機器語言書寫好的符號程序稱源程序,運行時匯編程序要將源程序翻譯成目標程序。目標程序是機器語言程序,它一經被安置在內存的預定位置上,就能被計算機的CPU處理和執行。
匯編語言像機器指令一樣,是硬體操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。匯編語言是低級語言。但是,匯編語言用來編制系統軟體和過程式控制制軟體,其目標程序佔用內存空間少,運行速度快,有著高級語言不可替代的用途。
3.高級語言
不論是機器語言還是匯編語言都是面向硬體的具體操作的,語言對機器的過分依賴,要求使用者必須對硬體結構及其工作原理都十分熟悉,這對非計算機專業人員是難以做到的,對於計算機的推廣應用是不利的。計算機事業的發展,促使人們去尋求一些與人類自然語言相接近且能為計算機所接受的語意確定、規則明確、自然直觀和通用易學的計算機語言。這種與自然語言相近並為計算機所接受和執行的計算機語言稱高級語言。高級語言是面向用戶的語言。無論何種機型的計算機,只要配備上相應的高級語言的編譯或解釋程序,則用該高級語言編寫的程序就可以通用。
目前被廣泛使用的高級語言有BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VB等。這些語言都是屬於系統軟體。 (了解內容二)
計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。編譯方式是:事先編好一個稱為編譯程序的機器語言程序,作為系統軟體存放在計算機內,當用戶由高級語言編寫的源程序輸入計算機後,編譯程序便把源程序整個地翻譯成用機器語言表示的與之等價的目標程序,然後計算機再執行該目標程序,以完成源程序要處理的運算並取得結果。解釋方式是:源程序進入計算機時,解釋程序邊掃描邊解釋作逐句輸入逐句翻譯,計算機一句句執行,並不產生目標程序。PASCAL、FORTRAN、COBOL等高級語言執行編譯方式;BASIC語言則以執行解釋方式為主;而PASCAL、C語言是能書寫編譯程序的高級程序設計語言。 每一種高級(程序設計)語言,都有自己人為規定的專用符號、英文單詞、語法規則和語句結構(書寫格式)。高級語言與自然語言(英語)更接近,而與硬體功能相分離(徹底脫離了具體的指令系統),便於廣大用戶掌握和使用。高級語言的通用性強,兼容性好,便於移植。下面介紹幾種較有代表性的高級程序設計語言:
⑴BASIC語言
BASIC語言全稱是Beginner』s all Purpose Symbolic Instruction Code,意為「初學者通用符號指令代碼「。1964年由美國達爾摩斯學院的基米尼和科茨完成設計並提出了BASIC語言的第一個版本,經過不斷豐富和發展,現已成為一種功能全面的中小型計算機語言。BASIC易學、易懂、易記、易用,是初學者的入門語言,也可以作為學習其他高級語言的基礎。BASIC有解釋方式和編譯方式兩種翻譯程序。
⑵PASCAL語言
PASCAL是一種結構程序設計語言,由瑞士蘇黎世聯邦工業大學的沃斯(N.Wirth)教授研製,於1971年正式發表。是從ALGOL60衍生的,但功能更強且容易使用。目前,作為一個能高效率實現的實用語言和一個極好的教學工具,PASCAL語言在高校計算機軟體教學中一直處於主導地位。Pascal(B.Pascal)是十七世紀法國著名數學家,他於1642年曾發明現代台式計算機的雛型機—加減法計算機。
PASCAL具有大量的控制結構,充分反映了結構化程序設計的思想和要求,直觀易懂,使用靈活,既可用於科學計算,又能用來編寫系統軟體,應用范圍日益廣泛。
⑶通用編程語言C
C語言是美國AT&T(電報與電話)公司為了實現UNIX系統的設計思想而發展起來的語言工具。C語言的主要特色是兼顧了高級語言和匯編語言的特點,簡潔、豐富、可移植。相當於其他高級語言子程序的函數是C語言的補充,每一個函數解決一個大問題中的小任務,函數使程序模塊化。C語言提供了結構式編程所需要的各種現代化的控制結構。
C語言是一種通用編程語言,正被越來越多的計算機用戶所推崇。使用C語言編寫程序,既感覺到使用高級語言的自然,也體會到利用計算機硬體指令的直接,而程序員卻無需捲入匯編語言的繁瑣。
⑷COBOL語言
COBOL的全稱是Common Business Oriented Language,意即:通用商業語言。
在企業管理中,數值計算並不復雜,但數據處理信息量卻很大。為專門解決經企管理問題,於1959年,由美國的一些計算機用戶組織設計了專用於商務處理的計算機語言COBOL,並於1961年美國數據系統語言協會公布。經不斷修改、豐富完善和標准化,已發展為多種版本。
COBOL語言使用了300多個英語保留字,大量採用普通英語詞彙和句型,COBOL程序通俗易懂,素有「英語語言」之稱。
COBOL語言語法規則嚴格。用COBOL語言編寫的任一源程序,都要依次按標識部、環境部、數據部和過程部四部分書寫,COBOL程序結構的「部」內包含「節」,「節」內包含「段」,段內包含語句,語句由字或字元串組成,整個源程序象一棵由根到干,由干到枝,由枝到葉的樹,習慣上稱之為樹型結構。
目前COBOL語言主要應用於情報檢索、商業數據處理等管理領域。
常用的高級程序設計語言,除了上述的幾種之外,還有很多,如以英國著名詩人拜倫(G.N.G.Byron)的獨生女艾達·拜倫(Ada Byron)的名字命名的軍用語言Ada,深受中、小學生歡迎的語言LOGO等等。
目前,程序設計語言及編程環境正向面向對象語言及可視化編程環境方向發展,出現了許多第四代語言及其開發工具。如:微軟公司(Microsoft)開發的Visual系列(VC++、VB、FoxPro)編程工具及Power Builder等,目前已經在國內外得到了廣泛的應用。
參考資料:http://www.jszx.zj.cn/pascal/yuyan.htm
Ⅳ C語言 匯編語言等是人類編寫的語言,為什麼機器能讀懂並能執行相應指令
編程語言經過編譯,形成二進制碼,轉換成電壓等物理量輸出,機器能識別的是這些物理量。
程序員其實就是人類語言(自然語言)和機器語言之間的翻譯。
Ⅵ 為什麼C語言可以編寫程序
呵呵
因為以前的時候人們編寫了一種執行代碼用來進行程序的運行而且給他取名「C語言」
所以,C語言就可以編寫程序
代碼可以編寫程序?
應該是說我們可以編寫代碼
然後代碼經過編譯、執行生成可執行文件
然後用戶執行可執行文件進行程序操作吧
裡面具體的過程我只是聽說過
具體怎麼回事我也不清楚
Ⅶ C語言是什麼東西,和電腦有什麼關系
首先,人類發明了計算機,需要與計算機「交流」,即寫入和讀出,而且硬體需要與軟體相配才能發揮作用,這樣必須發明一中語言讓人類與機器能夠交流,就誕生了機器語言,也就是低級語言。同時因為機器硬體畢竟不如人聰明(耶~),而且二進制也是最貼近硬體的語言,所以發明的語言也是最簡單的二進制,而普通人甚至是科學家也難懂,所以發明了一些高級語言,如同C語言,C++等等。
其中VB,VF都是比較低級,簡單的程序化語言,而C算是中等語言吧,而C++,JAVA等都算是難的了。
總之它們都是用來和計算機「交流」的語言,C只是其中的一種,用它可以來編輯程序,比如用VB可以編輯一些小游戲什麼的,用C++編輯一些大的程序,例如魔獸世界等絕大多數網路游戲都是用C++編寫的,所以學習C和C++都很有前途的。
Ⅷ 系統為什麼能夠讀懂運行exe文件,是不是有系統自帶的c語言遍澤器,或者其他什麼。
你這問的太多。我簡要說一下一般的exe也就是可執行文件的運行。一般的可執行程序也就是非中間語言的可執行程序在運行時,先由系統將程序調入內存,然後再設置好CPU中的各個寄存器,將指令指針寄存器中所指向的指令調入CPU以執行,然後指令指針寄存器再指向要執行的下一條指令,以此類推,直至完成整個程序的運行。
java、c#的可執行程序是一種中間語言程序,需要在運行時翻譯為可執行程序。
asp.net、php等是網站,和桌面應用程序不太一樣,雖然後台伺服器上差不多。
Ⅸ 計算機是如何識別C語言的
計算機是不能直接識別C語言的,它需要經過特殊的編譯器,編譯之後的二進制才能被計算機識別,計算機只能識別二進制代碼。
整個程序的編譯過程中有三個角色:程序員——編譯器——計算機。
程序員和編譯器之間的交流是C語言,同時編譯器也能把C語言經過翻譯成二進制指令。編譯器相當於程序員和計算機之間的翻譯官。
一個C語言程序的過程有以下步驟:
一、程序員使用C語言編寫代碼;
二、編譯把代碼翻譯成二進制指令;這里也有四個步驟:
a.預處理,這里主要處理頭文件,和程序中的一些宏代碼;
b.編譯,主要是把每個C語言文件編譯成二進制目標代碼;
c.鏈接,把上一步生成的目標代碼和庫文件進行鏈接,最終生成可執行程序。
以上就是C語言到計算機可識別代碼的轉換過程。
Ⅹ 學習C語言也有一段時間了,為什麼能讀懂程序,但是卻編不出來程序
學了多久了,你外語厲害么,你外語學幾年了,
寫不出,說明火候未到,先讀,然後照著敲代碼,接著該代碼,再自己設計代碼。