⑴ 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程序的運行是從什麼開始到什麼結束的
C程序的入口是main函數,一般來說只要是正常運行結束的都是從main函數的第一句話開始,最後一句結束。
例如:
int main()//程序開始
{
printf("Hello!\n");
return 0;//程序結束,返回值
}
但如果程序執行到中間遇到 return(main函數里的) exit(不管是main函數還是子函數中) 等也是會結束程序的。
⑶ C語言程序的運行步驟
當編寫完一個程序後,需要首先進行編譯,然後再運行。
如下圖所示,程序編寫完畢後,點擊工具欄中的Execute,選擇compile(編譯)。
如果沒有錯誤,再選擇Execute,選擇run(運行)。
(3)程序的運行過程是從什麼開始的擴展閱讀:
dll因為某些原因(最大的可能是因為它是個病毒或流氓軟體的dll文件,被殺軟刪除了)丟失了,但其相關的注冊信息卻還在,導致系統開機時還載入它,卻又找不到它的文件,所以報錯。
如果你點擊「確定」後,系統沒有什麼不正常,並且可以正常運行的話,你可以用這個軟體清理掉這個開機載入項,以後開機就不會出現這個信息了。
下載和安裝編譯器。C語言需要通過編譯器解釋為計算機可以理解的機器碼。 編譯器通常是免費的, 不同的操作系統上一般使用不同的編譯器。
對於Windows系統, 可以嘗試 Microsoft Visual Studio Express,其是Windows平台上最流行的多語言IDE(集成開發環境),其集成了Microsoft開發的C語言編譯器。對於OS X系統, Xcode是一款優秀的多語言IDE,其集成了C語言的編譯器。對於Linux, gcc是一個不錯的也是最流行的選擇。
⑷ 計算機程序的執行過程是怎樣的
執行程序的過程 :
開始執行程序時,必須先給程序計數器PC賦以第一條指令的首地址00H,然後就進入第一條指令的取令的取指令階段。
第一條指令的執行過程:
取指令階段:
①將程序計數器PC的內容(00H)送至地址寄存器AR,記為PC AR。
②程序計數器PC的內容自動加1變為01H,為取下一個指令位元組作準備,記為PC+1 PC。
③地址寄存器AR將00H通過地址匯流排送至存儲器,經地址解碼器解碼,選中00號單元,記為AR M。
④CPU發出"讀"命令。
⑤所選中的00號單元的內容B0H讀至數據匯流排DB,記為(00H) DB。
⑥經數據匯流排DB,將讀出的B0H送至數據寄存器,記為DB DR。
⑦數據寄存器DR將其內容送至指令寄存器IR,經過解碼,控制邏輯發出招待該條指令的一系列控制信號,記為DR IR,IR ID、PLA。經過解碼,CPU"識別"出這個操作碼就是MOV A,03指令,於是,它"通知"控制器發出執行這條指令的各種控制命令。
⑸ 簡述程序的運行過程
執行程序的過程
:
開始執行程序時,必須先給程序計數器PC賦以第一條指令的首地址00H,然後就進入第一條指令的取令的取指令階段。
第一條指令的執行過程:
取指令階段:
①將程序計數器PC的內容(00H)送至地址寄存器AR,記為PC
AR。
②程序計數器PC的內容自動加1變為01H,為取下一個指令位元組作準備,記為PC+1
PC。
③地址寄存器AR將00H通過地址匯流排送至存儲器,經地址解碼器解碼,選中00號單元,記為AR
M。
④CPU發出"讀"命令。
⑤所選中的00號單元的內容B0H讀至數據匯流排DB,記為(00H)
DB。
⑥經數據匯流排DB,將讀出的B0H送至數據寄存器,記為DB
DR。
⑦數據寄存器DR將其內容送至指令寄存器IR,經過解碼,控制邏輯發出招待該條指令的一系列控制信號,記為DR
IR,IR
ID、PLA。經過解碼,CPU"識別"出這個操作碼就是MOV
A,03指令,於是,它"通知"控制器發出執行這條指令的各種控制命令。
⑹ 1、一個C程序的執行是從______。
一個C語言的執行是從本程序的main函數開始,到main函數結束。
但需要注意的是,也是有特殊情況的,若是代碼中出現了exit函數,則直接結束程序,對於這一點還是需要了解的。
關於c語言需要了解的是,C語言用scanf()、printf()函數作入輸入、輸出函數,相對來說用法較復雜。而且C語言的最大優點是編譯後代碼運行效率接近匯編程序,速度快,資源佔用少。因此早期很多重要應用軟體、支撐軟體甚至系統軟體是用C語言編寫。
其特點
簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
⑺ 一個C程序的運行是從什麼開始到什麼結束的
C程序的入口是main函數,一般來說只要是正常運行結束的都是從main函數的第一句話開始,最後一句結束。x0dx0a例如:x0dx0aint main()//程序開始x0dx0a{x0dx0aprintf("Hello!\n");x0dx0areturn 0;//程序結束,返回值x0dx0a}x0dx0a但如果程序執行到中間遇到 return(main函數里的) exit(不管是main函數還是子函數中) 等也是會結束程序的。
⑻ c語言程序從哪開始執行
c語言程序從本程序的main函數開始執行。
在一個C語言源程序中,無論main函數書寫在本程序的前部,還是後部,程序的執行總是從main函數開始,到main函數結束;但需要注意的是,也是有特殊情況的,若是代碼中出現了exit函數,則直接結束程序。
一個C語言源程序有且僅有一個main函數,除main函數之外可以有若干個其它的函數,每個函數實現某一特定的操作。
簡介:
main函數,又稱主函數,是程序執行的起點,main是相對來說的,如同音學理論之主調於泛音,泛音即程序中的除main之外的其他函數,迎合人們的思考方式而生成的而非必定的模式。有主有次,執行起來條清縷析,既可將程序模塊化又實現了一個閉合的整體。
main 函數是在程序啟動中完成對具有靜態存儲期的非局部對象的初始化之後被調用的。它是程序在有宿主 (hosted)環境(亦即有操作系統)中所指定的入口點。自立程序(啟動載入器,操作系統內核,等等)的入口點則是由實現定義的。
⑼ C語言程序的執行過程是什麼
順序執行,從main函數開始,順序執行。
遇到調用的其它函數就先運行函數,然後繼續執行主函數下面的語句。
當整個程序編寫好後,編譯器先編譯,再連接各種庫函數,然後執行程序。
⑽ 一個C程序的執行是從什麼函數開始到什麼函數結束
您好,此題我在二級c語言筆試中遇到過,原題如下:
一個c語言的執行是從:()
a)
本程序的主函數開始,到本程序的主函數結束
b)
本程序的第一個函數開始,到本程序的最後一個函數結束
c)
本程序的主函數開始,到本程序的最後一個函數結束
d)
本程序的第一個函數開始,到本程序的主函數結束
標准答案是a