當前位置:首頁 » 編程語言 » c語言中代碼如何運行
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中代碼如何運行

發布時間: 2022-10-20 13:46:10

c語言編譯器如何運行

編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。

1、預處理階段:

主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)

2、匯編階段:

插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。

3、編譯階段:

將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。

4、鏈接階段:

在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。

❷ 在計算機上運行一個C語言編寫的程序,要經過怎樣的處理過程

開發一個C語言程序需要經過的四個步驟:編輯、編譯、連接、運行。

C語言程序可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然後將C源代碼編譯、連接成目標二進制文件之後即可運行。

1、編輯:輸入源程序並保存(。C文件)。

2、編譯:將源程序翻譯成目標文件(。OBJ文件)。

3、連接:將目標文件轉換成可執行文件。EXE文件)。

4、運行:執行。EXE文件,得到運行結果。

(2)c語言中代碼如何運行擴展閱讀:

C代碼變成程序的階段:

1、首先,源代碼文件test。c和相關的頭文件,如stdio。h,由預處理程序CPP預處理為一個。我的文件。這是預編譯。I文件不包含任何宏定義,因為所有宏都已展開,所包含的文件都已插入其中。我的文件。

2、編譯過程就是對預處理後的文件進行一系列的詞法分析、語法分析、語義分析和優化,從而產生相應的匯編代碼文件。這個過程通常是整個程序構造的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成一個可以運行的可執行程序。為了得到最終的可執行文件「A.out」,需要將一大堆文件鏈接在一起。

4、在鏈接過程中,調用其他目標文件中定義的函數的指令需要重新校準,使用其他目標文件中定義的變數的指令也需要重新校準。

❸ 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文件,得到運行結果。

❹ vs2019怎麼運行c語言代碼

如下:

1、首先,打開C語言編輯器工具,然後在該工具中編寫程序的源代碼,如下圖所示,然後進入下一步。

❺ [C語言] 運行C程序的步驟

c運行要經過4個步驟:
1 編輯代碼
2 編譯代碼
3 運行exe文件

❻ [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)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。

❼ vs2019怎麼運行c語言代碼

操作方法如下:

1、首先,打開C語言編輯器工具,然後在該工具中編寫程序的源代碼,如下圖所示,然後進入下一步。

相關介紹:

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

❽ c語言程序從哪開始執行

c語言程序從本程序的main函數開始執行。

在一個C語言源程序中,無論main函數書寫在本程序的前部,還是後部,程序的執行總是從main函數開始,到main函數結束;但需要注意的是,也是有特殊情況的,若是代碼中出現了exit函數,則直接結束程序。

一個C語言源程序有且僅有一個main函數,除main函數之外可以有若干個其它的函數,每個函數實現某一特定的操作。

簡介:

main函數,又稱主函數,是程序執行的起點,main是相對來說的,如同音學理論之主調於泛音,泛音即程序中的除main之外的其他函數,迎合人們的思考方式而生成的而非必定的模式。有主有次,執行起來條清縷析,既可將程序模塊化又實現了一個閉合的整體。

main 函數是在程序啟動中完成對具有靜態存儲期的非局部對象的初始化之後被調用的。它是程序在有宿主 (hosted)環境(亦即有操作系統)中所指定的入口點。自立程序(啟動載入器,操作系統內核,等等)的入口點則是由實現定義的。

❾ 怎麼在Dev C++下運行C語言

C語言已被廣泛地應用於系統軟體和應用軟體的開發中。那怎麼在Dev C++下運行C語言程序呢?歡迎大家閱讀!更多相關信息請關注相關欄目!

給出了一段完整的C語言代碼,就是在顯示器上輸出「C語言」,如下所示:

#includeint main(){puts("C語言");return 0;}

本節我們就來看看如何通過 Dev C++ 來運行這段代碼。

Dev C++ 支持單個源文件的編譯,如果你的程序只有一個源文件(初學者基本都是在單個源文件下編寫代碼),那麼不用創建項目,直接運行就可以;如果有多個源文件,才需要創建項目。

1) 新建源文件

打開 Dev C++,在上方菜單欄中選擇「文件 --> 新建 --> 源代碼」:

或者按下Ctrl+N組合鍵,都會新建一個空白的源文件,如下圖所示:

在空白文件中輸入本文開頭的代碼:

在上方菜單欄中選擇「文件 --> 保存」,或者按下Ctrl+S組合鍵,都可以保存源文件。

注意將源文件後綴改為.c。

小小的提示:C++是在C語言的基礎上進行的擴展,C++已經包含了C語言的全部內容,所以大部分 IDE 默認創建的是C++文件。但是這並不影響使用,我們在填寫源文件名稱時把後綴改為.c即可,編譯器會根據源文件的後綴來判斷代碼的種類。上圖中,我們將源文件命名為hello.c。

2) 生成可執行程序

在上方菜單欄中選擇「運行 --> 編譯」,就可以完成 hello.c 源文件的編譯工作。

或者直接按下F9鍵,也能夠完成編譯工作,這樣更加便捷。

如果代碼沒有錯誤,會在下方的「編譯日誌」窗口中看到編譯成功的提示:

編譯完成後,打開源文件所在的目錄(本教程中是 E:cDemo),會看到多了一個名為hello.exe的文件,這就是最終生成的可執行文件。

之所以沒有看到目標文件,是因為 Dev C++ 將編譯和鏈接這兩個步驟合二為一了,將它們統稱為「編譯」,並且在鏈接完成後刪除了目標文件,所以我們看不到。

雙擊 hello.exe 運行,並沒有輸出「C語言」幾個字,而是會看到一個黑色窗口一閃而過。這是因為,程序輸出「C語言」後就運行結束了,窗口會自動關閉,時間非常短暫,所以看不到輸出結果,只能看到一個「黑影」。

對上面的代碼稍作修改,讓程序輸出「C語言」後暫停下來:

#include#includeint main(){puts("C語言");system("pause");return 0;}

system("pause");語句的作用就是讓程序暫停一下。注意代碼開頭部分還添加了#include語句,否則system("pause");無效。

再次編譯,運行生成的 hello.exe,終於如願以償,看到輸出結果了,如下圖所示:

按下鍵盤上的任意一個鍵,程序就會關閉。

更加快捷的'方式

實際開發中我們一般使用菜單中的「編譯 --> 編譯運行」選項:

或者直接按下F11鍵,這樣能夠一鍵完成「編譯 --> 鏈接 --> 運行」的全過程,不用再到文件夾中找到可執行程序再運行。這樣做的另外一個好處是,編譯器會讓程序自動暫停,我們也不用再添加system("pause");語句了。

刪除上面代碼中的system("pause");語句,按下F11鍵再次運行程序,結果如下:

4) 總結

現在,你就可以將 hello.exe 分享給你的朋友了,告訴他們這是你編寫的第一個C語言程序。雖然這個程序非常簡單,但是你已經越過了第一道障礙,學會了如何編寫代碼,如何將代碼生成可執行程序,這是一個完整的體驗。

在本教程的基礎部分,教大家編寫的程序都是這樣的「黑窗口」,與我們平時使用的軟體不同,它們沒有漂亮的界面,沒有復雜的功能,只能看到一些文字,這就是控制台程序(Console Application),它與DOS非常相似,早期的計算機程序都是這樣的。

控制台程序雖然看起來枯燥無趣,但是它非常簡單,適合入門,能夠讓大家學會編程的基本知識;只有夯實基本功,才能開發出健壯的GUI(Graphical User Interface,圖形用戶界面)程序,也就是帶界面的程序。