A. 簡述將源程序編譯成可執行程序的過程
一個源程序到一個可執行程序的過程:預編譯、編譯、匯編、鏈接。其中,編譯是主要部分,其中又分為六個部分:詞法分析、語法分析、語義分析、中間代碼生成、目標代碼生成和優化。
預編譯:主要處理源代碼文件中的以「#」開頭的預編譯指令。處理規則如下:
1、刪除所有的#define,展開所有的宏定義。
2、處理所有的條件預編譯指令,如「#if」、「#endif」、「#ifdef」、「#elif」和「#else」。
3、處理「#include」預編譯指令,將文件內容替換到它的位置,這個過程是遞歸進行的,文件中包含其他文件。
4、刪除所有的注釋,「//」和「/**/」。
5、保留所有的#pragma 編譯器指令,編譯器需要用到他們,如:#pragma once 是為了防止有文件被重復引用。
6、添加行號和文件標識,便於編譯時編譯器產生調試用的行號信息,和編譯時產生編譯錯誤或警告是能夠顯示行號。
(1)程序編譯器怎麼執行擴展閱讀:
編譯過程中語法分析器只是完成了對表達式語法層面的分析,語義分析器則對表達式是否有意義進行判斷,其分析的語義是靜態語義——在編譯期能分期的語義,相對應的動態語義是在運行期才能確定的語義。
其中,靜態語義通常包括:聲明和類型的匹配,類型的轉換,那麼語義分析就會對這些方面進行檢查,例如將一個int型賦值給int*型時,語義分析程序會發現這個類型不匹配,編譯器就會報錯。
B. [C語言] 運行C程序的步驟
(1)上機輸入和編輯源程序。通過鍵盤向計算機輸入程序,如發現有錯誤,要及時改正。最後將此源程序以文件形式存放在自己指定的文件夾內(如果不特別指定,一般存放在用戶當前目錄下),文件用.c作為後綴,生成源程序文件,如f.c。
(2)對源程序進行編譯,先用C編譯系統提供的「預處理器」(又稱「預處理程序」或「預編譯器」)對程序中的預處理指令進行編譯預處理。例如,對於#include<stdio.h>指令來說,就是將stdio.h頭文件的內容讀進來,取代#include<stdio.h>行。由預處理得到的信息與程序其他部分一起組成一個完整的、可以用來進行正式編譯的源程序,然後由編譯系統對該源程序進行編譯。
編譯的作用首先是對源程序進行檢查,判定它有無語法方面的錯誤,如有,則發出「出錯信息」,告訴編程人員認真檢查改正。修改程序後重新進行編譯,如果還有錯,再發出「出錯信息」。如此反復進行,直到沒有語法錯誤為止。這時,編譯程序自動把源程序轉換為二進制形式的目標程序(在Visual C++中後綴為.obj,如f.obj)。如果不特別指定,此目標程序一般也存放在用戶當前目錄下,此時源文件沒有消失。
在用編譯系統對源程序進行編譯時,自動包括了預編譯和正式編譯兩個階段,一氣呵成。用戶不必分別發出二次指令。
(3)進行連接處理。經過編譯所得到的二進制目標文件(後綴為.obj)還不能供計算機直接執行。前面已說明:一個程序可能包含若干個源程序文件,而編譯是以源程序文件為對象的,一次編譯只能得到與一個源程序文件相對應的目標文件(也稱目標模塊),它只是整個程序的一部分。必須把所有的編譯後得到的目標模塊連接裝配起來,再與函數庫相連接成一個整體,生成一個可供計算機執行的目標程序,稱為可執行程序(executive program),在Visual C++中其後綴為.exe,如f.exe。
即使一個程序只包含一個源程序文件,編譯後得到的目標程序也不能直接運行,也要經過連接階段,因為要與函數庫進行連接,才能生成可執行程序。
以上連接的工作是由一個稱為「連接編輯程序」(linkage editor)的軟體來實現的。
(4)運行可執行程序,得到運行結果。
以上過程如圖1.2所示。其中實線表示操作流程,虛線表示文件的輸入輸出。例如,編輯後得到一個源程序文件f.c,然後在進行編譯時再將源程序文件f.c輸入,經過編譯源程序,找出問題,修改源程序,並重新編譯,直到無錯為止。有時編譯過程未發現錯誤,能生成可執行程序,但是運行的結果不正確。一般情況下,這不是語法方面的錯誤,而可能是程序邏輯方面的錯誤,例如計算公式不正確、賦值不正確等,應當返回檢查源程序,並改正錯誤。
為了編譯、連接和運行C程序,必須要有相應的編譯系統。目前使用的很多C編譯系統都是集成開發環境(IDE)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。
C. c++編好程序後如何在系統中運行
首先你要知道你寫的正確,所以要去編譯,要用編譯器。比如vc++軟體。
然後正確以後生成,生成二進制的obj文件。
因為obj文件時根據你的C++文件為單位來生成的,所以你需要一個能執行的exe,就需要將這些obj連接起來。編譯器一般生成obj後直接連接成exe。
基本就是上面三個步驟,如果你目前只有一堆C++代碼,而不是exe文件,那麼你需要的是一個編譯器。
也許你想不運行C++編譯器直接執行,但是你的代碼是按照C++語言規則來寫出來的一堆文字和符號,電腦並不知道你要做什麼,電腦沒有義務理解每一種語言,電腦終究只會運行二進制,這些熱二進制是什麼意思它不在乎。那麼你怎麼讓電腦知道你要做什麼,那麼很顯然,你需要一個軟體,它必須理解C++,還必須理解機器。就好像你給一個老外寫了一堆文字,你不該指望他能直接理解,你需要一個翻譯。所以你需要這么一個軟體,它就是編譯器。它幫你把你的C++檢查,如果正確就給你生成一個exe,然後這個exe才會執行。希望直接將一堆C++代碼執行是不能的。
D. c語言如何把c程序編譯成可執行的exe文件
1、編寫一段簡單的代碼,如下圖所示,編輯一段簡單的輸出語句。
E. C語言程序的執行過程是什麼
順序執行,從main函數開始,順序執行。
遇到調用的其它函數就先運行函數,然後繼續執行主函數下面的語句。
當整個程序編寫好後,編譯器先編譯,再連接各種庫函數,然後執行程序。
F. window內自帶的C語言編譯器怎麼用
1、首先,輸入【#include】。
注意事項:
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
G. 程序編完怎麼運行
你這個是什麼編譯器,沒用過,你用微軟的VS吧,以前是VC6.0,不過已經淘汰了,現在是VS,全稱visualstudio,若是WIN7系統,最高能裝2013的版本。2013和2015和2017差別不大。安裝後,新建空項目,選擇32位控制台選項,空項目前打勾,下一步,就生成了新項目,然後在新項目裡面右鍵源文件,新建項,建成後,你就可以輸入你的代碼了,輸出完畢後,點擊三角形運行按鈕就,就能運行了。
H. C語言編寫好代碼後,怎麼編譯,最後生成可執行文件
材料/工具:vc6.0
1、打開c語言編輯工具,在工具中寫入程序的源代碼。