本文目錄一覽:
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語言編程的一般步驟有哪些?
首先明確要解決的問題;\x0d\x0a其次分析問題並選擇想要利用的演算法,或者自己想一個的演算法;\x0d\x0a畫流程圖,明確解決問題過程中的邏輯關係和時序關係;\x0d\x0a然後才是上機編寫代碼;\x0d\x0a之後是debug調試,基本就可以執行了。\x0d\x0a\x0d\x0a具體就上機編寫代碼來講,首先需要打開C++的開發環境,然後新建一個工程;\x0d\x0a然後新建一個文件(如果是VC6.0就可以繼續寫了,如果是VS20**的話就需要在文件菜單中選擇將文件移入工程);\x0d\x0a在文件中寫入代碼,然後就可以編譯運行了。\x0d\x0a\x0d\x0a具體代碼的格式來講,首先應該引用頭文件#include,然後在所有頭文件引入之後加一行using namespace std;後面可以寫函數了,具體就看你自己的發揮了~
開發一個c語言程序要經過哪四個步驟
開發一個C語言程序需要經過的四個步驟:編輯、編譯、連接、運行。
C語言程序可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然後將C源代碼編譯、連接成目標二進位文件之後即可運行。
1、預處理:輸入源程序並保存(.C文件)。
2、編譯:將源程序翻譯為目標文件(.OBJ文件)。
3、鏈接:將目標文件生成可執行文件( .EXE文件)。
4、運行:執行.EXE文件,得到運行結果。
擴展資料:
C語言代碼變為程序的幾個階段:
1、首先是源代碼文件test.c和相關的頭文件,如stdio.h等被預處理器cpp預處理成一個.i文件。經過預編譯後的.i文件不包含任何宏定義,因為所有的宏已經被展開,並且包含的文件也已經被插入到.i文件中。
2、編譯過程就是把預處理完的文件進行一系列的詞法分析、語法分析、語義分析以及優化後產生相應的彙編代碼文件,這個過程往往是我們所說的整個程序的構建的核心部分,也是最複雜的部分之一。
3、彙編器不直接輸出可執行文件而是輸出一個目標文件,彙編器可以調用ld產生一個能夠運行的可執行程序。即需要將一大堆文件鏈接起來才可以得到「a.out」,即最終的可執行文件。
4、在鏈接過程中,對其他定義在目標文件中的函數調用的指令需要被重新調整,對實用其他定義在其他目標文件的變數來說,也存在同樣問題。
參考資料來源:百度百科-c語言
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/305106.html