c語言源程序是怎麼編譯
【答案】:C
編譯程序工作過程一般劃分為五個階段:詞法分析、語法分析、語義分析、優化、目標代碼生成。( 1 )詞法分析:也就是從左到右一個一個讀入源程序,識別一個單詞或符號,並進行歸類。( 2 )語法分析: 在詞法分析基礎上,將單詞序列分解成各類語法短語,如「程序」,「語句」,「表達式」等。( 3 )語義分析:審查源程序是否有語義錯誤,當不符合語言規范時候,程序就會報錯。( 5 )代碼優化:這個階段是對前階段中間代碼進行變換或改造,目是使生成目標代碼更為高效,即節省時間和空間。 ( 6 )目標代碼生成:也就是把優化後中間代碼變換成指令代碼或匯編代碼。 詞法分析和語法分析本質上都是對源程序結構進行分析。
⑵ 編寫好c語言源程序後如何進行編譯和運行
編寫好C語言源程序後,需要按照以下步驟進行編譯和運行:
1. 保存源代碼文件,確保文件擴展名為「.c」。
2. 使用C語言編譯器將源代碼文件編譯成目標文件。在命令行中輸入「gcc 源文件名.c -o 目標文件名」即可進行編譯。如果編譯成功,將生成一個目標文件。
3. 將目標文件鏈接成可執行文件。在命令行中輸入「gcc 目標文件名.o -o 執行文件名」即可進行鏈接。如桐弊陵果鏈接成功卜敗,將生成一個可執行文件。
4. 運行可執行文件。在命令行中輸入「./執行文件名」即可運行程序。如果一切正常,程序將輸出預期的結果。
需要注意的是,編譯和運行C語言程序需要相應的環境配置,包括C語言編譯器和操作系統等。此外,不同的操作系統和編譯器可能具有不同的命令行語法和選項,因此需要根據實際情況進行調局戚整。
⑶ C語言源程序到運行程序經過哪幾個步驟
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的目標文件中。
當程序由多個代碼文件構成時,每個文件都要先完成匯編工作,生成.o目標文件後,才能進入下一步的鏈接工作。
目標文件已經是最終程序的某一部分了,只是在鏈接之前還不能執行。可以通過-c選項生成目標文件:gcc -c -o hello.o hello.c
4、鏈接
經過匯編以後的機器代碼還不能直接運行。為了使操作系統能夠正確載入可執行文件,文件中必須包含固定格式的信息頭,還必須與系統提供的啟動代碼鏈接起來才能正常運行,這些工作都是由鏈接器來完成的。gcc -o hello hello.c
5、運行:執行.EXE文件,得到運行結果。
⑷ C語言源程序的編譯過程包括哪三個階段
編譯:將源程序轉換為擴展名為.obj的二進制代碼
連接:將obj文件進行連接,加入庫函數等生成可執行文件
運行:執行可執行文件,有錯返回修改,無錯結束