c語言程式環境
程式的編譯環境和執行環境
- 翻譯環境:在這個環境中,原始碼被轉換成可執行的機器指令
- 執行環境:它用於實際執行程式碼
這倆種環境不必在同一臺機器上
翻譯環境:
- 組成一個程式的每一個原始檔通過編譯過程轉換成目的碼
- 每個目標檔案由連結器捆綁在一起,形成一個單一而完整的可執行程式
- 連結器同時也會引入標準c函式庫中任何被該程式所用到的函式,而且它可以搜尋程式設計師個人的程式庫,將其需要的函式也連結到程式中
程式的編譯過程
C語言的程式從原始碼到二進位制程式都經歷了哪些過程?
預處理->編譯->彙編->連結
- 預處理:由.c檔案到.i檔案
- 編譯:由.i檔案到.s檔案
- 彙編:由.s檔案到.o檔案
- 連結:由.o檔案到可執行檔案
一、預處理(.i)
- 處理預處理指令(#include)
- 巨集替換(#define)
- 刪除註釋
二、編譯(.s)
- 語法分析
- 詞法分析
- 語義分析
- 符號彙總
三、彙編(.o)
- 生成符號表
- 彙編指令->二進位制指令
四、連結
- 合併段表
- 符號表的合併和符號表的重定義
執行環境
程式執行的過程:
- 程式必須載入記憶體中(一般由作業系統完成)
- 開始執行,呼叫mian()函式
- 開始執行程式碼。這個時候程式將有一個執行時堆疊(stack),儲存函式的區域性變數和返回地址。同時可以使用靜態記憶體。
- 終止程式,正常終止main(),也可能是意外終止
相關文章
- win10怎麼搭建c語言環境_win10如何搭建c語言環境Win10C語言
- 【R語言入門】R語言環境搭建R語言
- GO語言————2、GO語言環境安裝Go
- 聊聊C語言/C++—程式和程式語言C語言C++
- C語言getenv()函式:取得環境變數內容C語言函式變數
- 第1天 C語言Dev-Cpp環境搭建及使用、C語言記憶體四區C語言dev記憶體
- C語言程式C語言
- go語言grpc環境搭建GoRPC
- Go語言開發環境搭建Go開發環境
- C語言putenv()函式:改變或增加環境變數C語言函式變數
- 實驗報告1-熟悉C語言執行環境C語言
- Golang(go語言)開發環境配置Golang開發環境
- go語言配置VIM開發環境Go開發環境
- Gentoo Linux語言環境指南(轉)Linux
- Goland環境配置——Goland上的第一個Go語言程式GoLand
- Linux環境組合語言程式設計初步——AT&T語法(轉)Linux組合語言程式設計
- java語言環境jdk的安裝和環境變數的配置JavaJDK變數
- 一些適合初學者的C/C++語言開發環境(IDE)C++開發環境IDE
- Java 語言概述與開發環境(1)Java開發環境
- Java 語言概述與開發環境(2)Java開發環境
- GO語言eclipse開發環境搭建GoEclipse開發環境
- 02-Java語言概述及環境配置Java
- Mac 安裝 GO語言開發環境MacGo開發環境
- GO語言linux下環境變數GoLinux變數
- C語言程式設計C語言程式設計
- Linux下搭建Go語言開發環境LinuxGo開發環境
- 開心檔之Go 語言環境安裝Go
- 設定Oracle使用者的語言環境Oracle
- 修改oracle當前會話的語言環境Oracle會話
- Windows配置R語言、RStudio開發環境WindowsR語言開發環境
- Go語言VSCode開發環境配置GoVSCode開發環境
- C語言簡單程式碼程式C語言
- 奇怪的C語言——C51程式設計C語言注意事項C語言程式設計
- Linux環境組合語言程式設計初步——使用gdb除錯程式(轉)Linux組合語言程式設計除錯
- C語言:一種高效、易學的程式語言C語言
- C 語言程式碼總結
- C語言第一個程式C語言
- C語言程式設計原理C語言程式設計