C++少兒編程(二十一)—軟件執行流程

讓我們將以下程序視為用C++編寫的示例程序。

  1. 步驟1:預處理器源代碼轉換為擴展代碼。

當您運行程序時,源代碼首先被發送到稱為預處理器的工具。預處理器主要做兩件事:

??它會從程序中刪除注釋。

??它擴展了預處理器指令,如宏或文件包含。

??它最終將my-file.cpp或my-file.c轉換為包含擴展源代碼(或簡稱為擴展代碼)的my-file.i文件。

????剛才發生了什么?

????宏#define PI 3.14被擴展,即它在area()方法中用3.14替換了PI。

????文件包含#include<iostream>已展開,即它被文件iostream中存在的實際代碼替換。

????源代碼(myfile.cpp)被轉換為擴展代碼(myfile.i)。

步驟2:編譯器將擴展代碼轉換為匯編代碼。

接下來是編譯器的作用。編譯器做兩件事:

??它檢查程序是否存在語法錯誤。

??如果沒有發現錯誤,它會將擴展代碼轉換為匯編代碼。

??基本上,擴展代碼my-file.i被轉換為包含匯編代碼的file.s。

步驟3:匯編程序將匯編代碼轉換為目標代碼。

在此步驟中,下一個名為Assembler的工具將Assembly代碼轉換為Object代碼。

目標代碼也稱為字節碼、二進制代碼或計算機可理解的機器級代碼。

在windows上,包含目標代碼的文件將是my-file.obj。

在macOS和Linux上,包含目標代碼的文件將是my file.o。

步驟4:鏈接器將目標代碼轉換為可執行代碼。

在此步驟中,名為Linker的工具將目標代碼轉換為可執行代碼,即可執行文件my-file.exe。

步驟5:最后,加載器將可執行文件加載到內存中。

在最后一步中,加載器將可執行文件加載到內存中,程序開始在可執行環境中運行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92013.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92013.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92013.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

精通Webpack搭建Vue2.0項目腳手架指南

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;在Web應用程序開發中&#xff0c;Vue 2.0因其虛擬DOM、單文件組件、增強的生命周期鉤子和Vuex及Vue Router狀態管理與路由解決方案&#xff0c;成為了提高開發效率和代碼組織性的關鍵。Webpack作為必不可少的模…

無償分享120套開源數據可視化大屏H5模板

數據可視化跨越了語言、技術和專業的邊界&#xff0c;是能夠推動實現跨界溝通&#xff0c;實現國際間跨行業的創新的工具。正如畫家用顏料表達自我&#xff0c;作者用文字講述故事&#xff0c;而統計人員用數字溝通 ...... 同樣&#xff0c;數據可視化的核心還是傳達信息。而設…

Qt按鍵響應

信號與槽機制是一個非常強大的事件通信機制&#xff0c;是 Qt 最核心的機制之一&#xff0c;初學者掌握它之后&#xff0c;幾乎可以做任何交互操作。信號&#xff08;Signal&#xff09; 是一種“事件”或“通知”&#xff0c;比如按鈕被點擊、文本改變、窗口關閉等。 槽&#…

【Git】常見命令整理

Git分區與操作關系&#xff1a;Working Directory&#xff08;工作區&#xff0c;對于本地的編輯和修改在此進行&#xff09;->Staging Area&#xff08;暫存區/Index&#xff0c;在工作區進行git add操作后的位置&#xff09;->Git Repository&#xff08;本地倉庫&…

Linux-Shell腳本基礎用法

1.變量定義變量命名規則&#xff1a;可以包含字母&#xff0c;數字&#xff0c;下劃線&#xff0c;首字母不能用數字開頭&#xff0c;中間不能又空格&#xff1b;為變量賦值等號之間不能為空格&#xff1b;變量命名不能使用標點符號&#xff0c;不能使用bash的關鍵字&#xff1…

JS中的Map和WeakMap區別和聯系

JavaScript 中 Map 與 WeakMap 的區別、聯系及示例核心區別特性MapWeakMap鍵的類型允許任意類型的鍵&#xff08;對象、原始值&#xff09;鍵必須是對象&#xff08;非原始值&#xff09;垃圾回收強引用鍵 → 阻止垃圾回收弱引用鍵 → 不影響垃圾回收可遍歷性支持遍歷&#xff…

Linux 環境 libpq加載異常導致psql 連接 PostgreSQL 庫失敗失敗案例

文章目錄局點現象定位結論局點環境補充知識點如下庫文件加載順序關鍵事實&#xff1a;您系統中的證據&#xff1a;優先級對比表&#xff1a;解決方案強化&#xff1a;最終檢查&#xff1a;本局點解決方法局點現象 數據庫 mdm 升級失敗檢查日志, 發現是由于 psql 連接數據庫報錯…

C# XML 文件

在 C# 中處理 XML 文件是非常常見的操作&#xff0c;可以使用System.Xml命名空間中的類來實現。以下是一些常用的 XML 操作示例&#xff1a; 手冊鏈接&#xff1a; System.Xml 命名空間 XmlDocument 創建一個xml數據格式的文檔 XmlDocument xml new XmlDocument(); Xml…

LOVON——面向足式Open-Vocabulary的物體導航:LLM做任務分解、YOLO11做目標檢測,最后L2MM將指令和視覺映射為動作(且解決動態模糊)

前言 因為項目需要(比如我們在做的兩個展廳講解訂單)&#xff0c;近期我一直在研究VLN相關&#xff0c;有些工作哪怕暫時還沒開源(將來可能會開源)&#xff0c;但也依然會解讀&#xff0c;比如好處之一是構建完整的VLN知識體系&#xff0c;本文便是其中一例 我在解讀過程中&am…

【Django】-3- 處理HTTP響應

HttpResponse 家族” 的常用操作&#x1f31f;1. 設置狀態碼 &#x1f44b;狀態碼是服務器告訴客戶端 “請求處理結果” 的數字暗號&#xff08;比如 404 表示 “沒找到頁面”&#xff09;。Django 里有 3 種設置方式&#xff1a;方式 1&#xff1a;直接寫數字&#xff08;簡單…

《React Router深解:復雜路由場景下的性能優化與導航流暢性構建》

路由系統是連接用戶操作與應用功能的中樞神經,而React Router作為React生態中處理路由邏輯的核心工具,其在復雜應用中的表現直接決定著用戶體驗的優劣。當應用規模擴張至數十甚至上百個路由,嵌套層級跨越多層,導航控制中的性能問題便會逐漸凸顯——從首屏加載的延遲到路由切…

網絡與信息安全有哪些崗位:(4)應急響應工程師

想知道網絡與信息安全領域有哪些具體崗位嗎&#xff1f; 網絡與信息安全有哪些崗位&#xff1a;&#xff08;1&#xff09;網絡安全工程師-CSDN博客 網絡與信息安全有哪些崗位&#xff1a;&#xff08;2&#xff09;滲透測試工程師_網絡安全滲透工程師-CSDN博客 網絡與信息安…

Leetcode 3634. Minimum Removals to Balance Array

Leetcode 3634. Minimum Removals to Balance Array 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3634. Minimum Removals to Balance Array 1. 解題思路 這一題思路上就是一個滑動窗口的思路。 我們首先將整個數組有序排列&#xff0c;然后分別從左向右考察每一個元素作為…

C#/.NET/.NET Core優秀項目和框架2025年7月簡報

前言 每月定期推廣和分享的C#/.NET/.NET Core優秀項目和框架&#xff08;每周至少會推薦兩個優秀的項目和框架當然節假日除外&#xff09;&#xff0c;推文中有項目和框架的詳細介紹、功能特點、使用方式以及部分功能截圖等。注意&#xff1a;排名不分先后&#xff0c;都是十分…

第 10 篇:深度學習的“軍火庫”——CNN、RNN與Transformer,AI如何看懂世界?

《人工智能AI之機器學習基石》系列⑩ 專欄核心理念: 用通俗語言講清楚機器學習的核心原理,強調“洞察 + 技術理解 + 應用連接”,構建一個完整的、富有啟發性的知識體系。 引

深度學習—功能性函數代碼 common.py

函數&#xff1a;返回GPU def try_gpu(i0): #save"""如果存在&#xff0c;則返回gpu(i)&#xff0c;否則返回cpu()"""if torch.cuda.device_count() > i 1: # 如果存在第 i 個 GPUreturn torch.device(fcuda:{i}) # 返回第 i 個 GPU 設…

南太平洋金融基建革命:斐濟-巴新交易所聯盟的技術破局之路 ——從關稅動蕩到離岸紅利,跨境科技如何重塑太平洋資本生態

一、今日焦點&#xff1a;全球關稅震蕩與南太平洋的“技術聯盟”機遇 1. 特朗普關稅大限引爆亞太市場波動&#xff0c;小經濟體承壓尋路 2025年8月1日&#xff0c;特朗普正式簽署行政令&#xff0c;對多國征收10%-41%的“對等關稅”。韓國首當其沖&#xff0c;綜合指數暴跌近4%…

python爬取豆瓣電影評論通用代碼

最近在自學python爬蟲&#xff0c;今天閑來無事&#xff0c;爬了一下豆瓣數據 這個網站對于初學者來說還是很友好的注意&#xff1a;有python環境的朋友運行的時候&#xff0c;要把cookie換成自己的 通用性&#xff1a;可以自己換不同的電影id進行數據爬取 Tip&#xff1a;slee…

構建屬于自己的第一個 MCP 服務器:初學者教程

為什么需要 MCP 服務器&#xff1f; 你是否遇到過這樣的場景&#xff1a;向 AI 助手&#xff08;比如 GitHub Copilot&#xff09;詢問 “北京今天的天氣”&#xff0c;得到的回復卻是 “我無法訪問實時天氣數據”&#xff1f; 這是因為大多數 AI 模型本身 “與世隔絕”—— 它…

個人項目介紹:語音識別小助手

一、項目內容 基于STM32F103RCT6制作了一款集語音識別、按鍵控制、信息顯示、溫濕度監測等多功能于一體的智能設備&#xff0c;滿足多樣化的交互需求。 二、個人工作內容 依據項目需求&#xff0c;選定 STM32F103RCT6 單片機、SU-03T語音識別模組、AHT25 溫濕度傳感器等核心元件…