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

2021-12-25 03:29:09 字數 3659 閱讀 7270

1樓:小洛答疑

開發c程式有四個步驟:編輯、編譯、連線和執行。

任何一個體繫結構處理器上都可以使用c語言程式,只要該體系結構處理器有相應的c語言編譯器和庫,那麼c源**就可以編譯並連線到目標二進位制檔案上執行。

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

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

4、執行:執行,獲取執行結果的exe檔案。

擴充套件資料:

將c語言**分為程式的幾個階段:

1、首先,源**檔案測試。以及相關的標頭檔案,比如stdio。h、由前處理器cpp預處理為.i檔案。

預編譯的。檔案不包含任何巨集定義,因為所有巨集都已,並且包含的檔案已插入。我歸檔。

2、編譯過程是對預處理檔案進行詞法分析、語法分析、語義分析和優化,生成相應的彙編**檔案。這個過程往往是整個程式的核心部分,也是最複雜的部分之一。

3、彙編程式不直接輸出可執行檔案,而是輸出目標檔案。彙編程式可以呼叫ld來生成可以執行的可執行程式。也就是說,您需要連結大量的檔案才能獲得「a.out」,即最終的可執行檔案。

4、在連結過程中,需要重新調整其他目標檔案中定義的函式呼叫指令,而其他目標檔案中定義的變數也存在同樣的問題。

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

2樓:匿名使用者

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

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

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

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

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

3樓:北京泗洪人

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

架構設計

原始碼開發

編譯測試

**提交

4樓:趙祖龍

除錯程式

連結處理

執行程式

5樓:匿名使用者

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

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

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

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

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

6樓:燈光不再亮

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

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

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

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

7樓:熱情的流浪喵喵

編寫,編譯,連線,執行

8樓:緩緩掉落的松針

問題分析

演算法設計

程式編寫

執行維護

9樓:匿名使用者

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

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

答案:編輯 編譯 連線 執行

擴充解釋:

編寫一個c語言程式直到執行,經過幾個步驟?請描述每一步生成的檔案型別.

10樓:匿名使用者

首先建立

bai源**(生成.c或者du.cpp檔案),然後編譯(zhi生成.o檔案),最後連結(dao生成可執回

行檔案,windows下是.exe檔案。)答舉個例子:

lizi.cpp(編寫**檔案)

lizi.o(編譯後生成檔案)

lizi.exe(連結後生成可執行檔案)

現在大多數人都用視覺化的編寫軟體,從源程式到可執行檔案的中間過程肯定看不到的

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

11樓:

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檔案,得到執行結果。

12樓:深天零距離

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

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

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

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

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

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

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

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

13樓:

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

14樓:刀無極啊

四個步驟

預處理 編譯 彙編 連結

詳情

15樓:匿名使用者

連結,編譯,除錯,執行

c語言中下面編寫的程式編譯無錯誤執行時顯示

第10行,strcmy,改成strcmp 你這程式邏輯混亂了哦。strcmp這個函式是比較的意思,對原來的資料不會進行任何修改的,而且返回值是0和1,你也沒有變數接收返回值。如果沒有理解錯你的意思的話,你應該把if和else下面的函式也改成strcpy 拼錯了strcmy strcmp c語言程式,...

c語言中的標頭檔案,c語言標頭檔案怎麼寫呀?

include說明呼叫dos控制檯i o子程式的各個函式。include包含字串庫函式說明的標頭檔案 include包含動態儲存與釋放函式標頭檔案 不是標準庫,通常講述標準庫的書當然沒有它。可能是使用者自己寫的 被呼叫函式來自的資料庫 c語言中的標頭檔案 c語言中的標頭檔案 include。標頭檔案...

CEXE檔案自動執行,C 生成的exe檔案開啟後閃退

開機自動執行需要向登錄檔寫入新的項 hkey local machine software microsoft windows currentversion run bool bresult true hkey hregkey null cstring str1,m strfilename str1...