C語言程式執行過程,C語言源程式到執行程式經過哪幾個步驟

時間 2022-03-21 09:36:37

1樓:匿名使用者

#include

載入stdio.h函式包到程式中;

void main()

函式的開始標誌

int i, j;

宣告整型變數i,j,並分配相應大小的記憶體空間;

for( i = 1 ; i <=4 ; i=i+1 )初始化i的值為1,進入迴圈,當該次迴圈結束,i=i+1(相當於i自增),

當然返回 i <= 4 判斷是否條件成立,成立,則繼續迴圈;否則,結束迴圈;

for(j=1;j<=4;j++)同

迴圈內,if 判斷 i,j是否同時為奇數,成立則輸出*;

else if判斷i,j是否同時為偶數,成立則輸出#;

其餘情況都輸出%;

printf("\n");      每次迴圈結束都會換一次行;

如果需要更詳細的流程,可以追問。

c語言源程式到執行程式經過哪幾個步驟

2樓:

1、預處理

在這一階段,原始碼中的所有預處理語句得到處理,例如:#include語句所包含的檔案內容替換掉語句本身,所有已定義的巨集被。

根據#ifdef,#if等語句的條件是否成立取捨相應的部分,預處理之後原始碼中不再包含任何預處理語句。

gcc預處理階段可以生成.i的檔案,通過選項-e可以使編譯器在預處理結束時就停止編譯。例如:gcc -e -o hello.i hello.c

2、編譯

這一階段,編譯器對原始碼進行詞法分析、語法分析、優化等操作,最後生成彙編**。這是整個過程中最重要的一步,因此也常把整個過程稱為編譯。

可以通過選項-s使gcc在進行完編譯後停止,生成.s的匯程式設計序。例如:gcc -s -o hello.s hello.c

3、彙編

這一階段使用彙編器對彙編**進行處理,生成機器語言**,儲存在字尾為.o的目標檔案中。

4、鏈結

經過彙編以後的機器**還不能直接執行。為了使作業系統能夠正確載入可執行檔案,檔案中必須包含固定格式的資訊頭,還必須與系統提供的啟動**鏈結起來才能正常執行,這些工作都是由鏈結器來完成的。gcc -o hello hello.

c5、執行:執行.exe檔案,得到執行結果。

3樓:深天零距離

預處理階段:預處理器(cpp)根據以字元#開頭的命令,修改原始的c程式。比如hello.

c中第一行的#include命令告訴預處理器讀取系統標頭檔案stdio.h的內容,並把它直接插入程式文字中,結果就得到了另乙個c程式,通常是以.i作為副檔名。

編譯階段:編譯器(ccl)將文字檔案hello.i翻譯成文字檔案hello.

s,它包含乙個組合語言程式。組合語言程式中的每條語句都以一種標準的文字格式確切的描述了一條低階機器語言指令。

彙編階段:彙編器(as)將hello.s翻譯成機器語言指令,把這些指令打包成一種可重定位目標程式的格式,並將結果儲存在目標檔案hello.

o中。hello.o檔案是乙個二進位制檔案,它的位元組編碼是機器語言指令而不是字元,如果我們在文字檔案中開啟hello.

o檔案,看到的將是一堆亂碼。

鏈結階段:鏈結器(ld)負責處理合併目標**,生成乙個可執行目標檔案,可以被載入到記憶體中,由系統執行

4樓:

c語言經過編譯成匯程式設計序 ,編譯得到的組合語言通過彙編器(assembler)再彙編成可重定位目標程式

5樓:刀無極啊

四個步驟

預處理 編譯 彙編 鏈結

詳情

6樓:匿名使用者

鏈結,編譯,除錯,執行

c語言程式的執行步驟

7樓:鍾離踏憶

當編寫完乙個程式後,需要首先進行編譯,然後再執行。

如下圖所示,程式編寫完畢後,點選工具欄中的execute,選擇compile(編譯)。

如果沒有錯誤,再選擇execute,選擇run(執行)。

8樓:雨中抬頭

寫好後,直接編譯,看是否有錯誤,如果有的話,根據提示修改,直到編譯通過,然後鏈結,執行就ok了,一般來說,乙個程式的執行就是這些

寫程式關鍵是演算法和編好的改錯,希望樓主學習愉快!

9樓:匿名使用者

由main函式開始 你問的是怎麼執行軟體還是?

c語言編譯執行的全過程是怎樣的?

10樓:憨人超

不明白樓主什麼意思,就是先把你的**轉為彙編**,然後轉為二進位制檔案,讀入記憶體執行。

11樓:匿名使用者

用編譯原理的話來說呢,分成詞法分析,語法分析,語義分析,中間**生成,**優化,目標**生成這麼幾個階段。

對c語言來說,一般只需要知道分成編譯和連線兩個階段,編譯階段將源程式(*.c)轉換成為目標**(,一般是obj檔案,至於具體過程就是上面說的那些階段),連線階段是把源程式轉換成的目標**(obj檔案)與你程式裡面呼叫的庫函式對應的**連線起來形成對應的可執行檔案(exe檔案)。

關於c語言程式的執行順序

12樓:波瀾不驚微笑

最開始a=0.000000;

c語言從main()函式開始執行,如果在main()函式中不呼叫test(),那麼test()就不執行。

假設呼叫了test()函式,那麼要等timer函式執行完之後才開始執行a = k + i 。

假設呼叫了timer()函式,只是要迴圈100次,並不是100個時鐘週期。

c語言檔案的編譯與執行的四個階段並分別描述

簡述開發乙個c語言程式的步驟

13樓:匿名使用者

1 寫**。這是最基礎的一步,即實現c語言的原始檔(.c,必需),和可能的標頭檔案(.h,非必需)。

2 編譯。將編寫好的**,通過編譯工具,轉換為目標檔案。此步中,會對檔案內部及包含的標頭檔案進行語法語義的分析檢查。如果出錯,則必須返回到一步對**進行修改,直到沒有錯誤為止。

3 鏈結。將目標檔案鏈結成可執行檔案。此步會對檔案直接的關聯進行檢查。如果出錯需要返回到1修改**。直到沒有錯誤。

4 執行。這個是最後一步,也是c語言的最終目的。

5 在執行結果與期望不符時,需要檢查原因,修改**,重新執行一二三直到程式沒有問題。

(1)語言簡潔、緊湊靈活。二十八個關鍵字、九種控制語句,程式形式自由,運算子豐富。三十四種運算子。

(2)資料型別豐富,具有現代語言的各種資料結構。

(3)c程式的主要結構是函式,是完全模組化和結構化的語言。

(4)允許直接訪問實體地址,能進行位操作,能實現組合語言的大部分功能,可直接對硬體進行操作。兼有高階和低階語言的特點。

(5)程式可移植性好(與組合語言比)。基本上不做修改就能用於各種型號的計算機和各種作業系統。

(6)目標**質量高,程式執行效率高。只比匯程式設計序生成的目標**效率低10%-20%。

(7)語法限制不太嚴格,程式設計自由度大。

開發乙個c語言程式要經過哪四個步驟

14樓:匿名使用者

開發乙個c語言程式需要經過的四個步驟:編輯、編譯、連線、執行。

c語言程式可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的c語言編譯器和庫,然後將c源**編譯、連線成目標二進位制檔案之後即可執行。

1、預處理:輸入源程式並儲存(.c檔案)。

2、編譯:將源程式翻譯為目標檔案(.obj檔案)。

4、執行:執行.exe檔案,得到執行結果。

15樓:北京泗洪人

大體上可以分為以下步驟:

架構設計

原始碼開發

編譯測試

**提交

16樓:趙祖龍

除錯程式

鏈結處理

執行程式

17樓:匿名使用者

1 寫**。這是最基礎的一步,即實現c語言的原始檔(.c,必需),和可能的標頭檔案(.h,非必需)。

2 編譯。將編寫好的**,通過編譯工具,轉換為目標檔案。此步中,會對檔案內部及包含的標頭檔案進行語法語義的分析檢查。如果出錯,則必須返回到1步對**進行修改,直到沒有錯誤為止。

3 鏈結。將目標檔案鏈結成可執行檔案。此步會對檔案直接的關聯進行檢查。如果出錯需要返回到1修改**。直到沒有錯誤。

4 執行。這個是最後一步,也是c語言的最終目的。

在執行結果與期望不符時,需要檢查原因,修改**,重新執行1,2,3直到程式沒有問題。

18樓:燈光不再亮

確定需求,也就是你開發的東西是拿來幹什麼的,有什麼功能編碼階段,也就是俗稱的擼碼了,,

編碼完成後,自己執行看看有沒有bug;

把程式打包,上傳到伺服器,發布出去

具體開發當然還有許多細節,但是大致的步驟基本一樣,純手打,望採納

19樓:熱情的流浪喵喵

編寫,編譯,連線,執行

20樓:緩緩掉落的松針

問題分析

演算法設計

程式編寫

執行維護

21樓:匿名使用者

提供《計算機考試題庫》的答案(填空):

開發—個c語言程式需要經過______、______、______和______四個基本過程。

答案:編輯 編譯 連線 執行

擴充解釋:

c語言編譯執行的全過程是怎樣的?

22樓:吉祥二進位制

預處理階斷:這個就是那些#include啥的。

編譯階斷:把c語言的**轉成組合語言**,比如 int a = 2; 它會生成mov a, 2;

彙編階斷:把彙編**轉換成機器碼,比如把mov a , 2 ; 轉成 cd07 (mov指令的機器碼中的一種機器碼)

鏈結階斷:製作成乙個可執行檔案,比如windows是pe的可執行檔案,linux是elf的可執行檔案,要製作成可以執行的程式。

c語言,分析程式執行結果,C語言 分析下列程式的執行結果

if s i ch 這裡的ch 是函式的引數2,函式 void fun char s,char ch 呼叫函式的作用 是 刪除 字串 char s 裡 所有 的字元 ch.char str eatefeed 呼叫 fun str,e 就是刪除 字串 eatefeed 裡 所有 的字元 e.結果得 a...

c語言程式為什會執行出這個結果,C語言程式為什會執行出這個結果?

輸出的格式錯了啊 printf d d n i,j 這個c語言程式執行的結果為什麼會是這樣?好像是指標問題 第乙個迴圈輸入完畢後p已經指向a陣列後面去了輸出時先把p重置就行了 include void main printf n p a p歸位 for i 0 i 10 i p c語言程式執行之後為...

解釋c語言程式,解釋C語言程式

include 包含標頭檔案stdio.h void dec2hex int n,char str 函式dec2hex,沒有返回值,帶乙個整型引數和乙個字串陣列引數 while n 0 n大於0時繼續執行do.while str m 0 把字元 0 字串的結束字元 賦給str m for i 0,j...

c語言程式疑問,C語言程式疑問?

include include include void reverse char p void user itoa int ndigital,char pch ptmp 0 reverse pch void main system pause 求採納為滿意回答。讀取掉緩衝區中的回車符,這樣你下次輸...

C 語言源程式由什麼構成,1 C 語言的標頭檔案與源程式副檔名分別是

注釋部分 兩種風格 編譯預處理部分 巨集定義,檔案包含和條件編譯 程式正文部分 型別定義 常變數定義 函式定義 c 程式源於c語言,還記得很久以前學習c語言的時光 那是一段快樂而充實的時光 可是現在學習c 並不是在c的基礎上加上了類而已,如果這樣認為,我們是耍不好c 的。因此,c 絕不是c的公升級或...