C語言深度剖析

一、關鍵字

1.1 最快的關鍵字-register

register 這個關鍵字請求編譯器盡可能將變量存在CPU內部寄存器中,而不是通過內存尋址以提高效率。

注意是:盡可能、而不是絕對

1.1.1 皇帝身邊的小太監-寄存器

不知道什么是寄存器,那見過太監沒有其實寄存器就是相當于。一個cpu的中轉站并沒有其他功能。

好,那我們再連線一下我們的cpu cpu不就是皇帝同志嗎?大神就相當于我們的內存數據從他這拿出來,那小太監就是我們的寄存器了。數據從內存拿出來要先放到寄存器,然后cpu再從寄存器里讀取數據處理,處理完后同樣把數據通過寄存器存放到內存里。Cpu不直接和內存打交道,這里要說明的一點是小太監是主動從大臣手里接過奏章,然后主動地交給皇帝同志。但寄存器沒有那么自覺,他從不主動干什么事,一個皇帝可能有好幾個小太監,那么一個cpu就也有可能有很多起人氣。不同的型號的cpu擁有的寄存器的數量不一樣。

為啥要這么麻煩啊?原因就是速度吸塵器其實是一塊很小的內存空間,只不過其存儲速度要比內存快的多。所謂近水樓臺先得月嘛,它距離cpu很近,cpu一伸手就拿到數據了,比在那么大的一塊內存里去尋找某個地址上的數據是不是快的多了,那有人要問,既然它速度那么快,那我們的內存硬盤都換成計算器得了唄。我要的要說的是:你可真有錢。

總結:寄存器作為CPU的助手,訪問速度要比內存快,但是寄存器成本比內存高。

1.1.2 使用register修飾符注意點

雖然計算器的速度非常快,但是使用 register修飾符也有限制的register變量必須能被cpu寄存器所接受的類型意味著register變量必須是一個單個的詞。并且其長度應該小于等于整形的長度,而且register變量可能不存放在內存中,所以不能使用取地址符"&"來獲取register變量的歷史。<

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

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

相關文章

電腦使用“碎片整理”程序的作用

1.解決文件碎片化問題碎片整理的作用&#xff1a;將這些分散的文件片段重新整理、拼接&#xff0c;使其連續存儲在硬盤的某個區域&#xff0c;減少文件的 “碎片化” 程度。2. 提升硬盤讀寫速度機械硬盤的特殊性&#xff1a;機械硬盤依賴磁頭的物理移動來讀取數據&#xff0c;若…

AI 軟件工程開發 AI 算法 架構與業務

AI 軟件工程開發 & AI 算法 & 架構與業務前言1.AI 軟件工程開發1.1. AI Developer Studio &#xff08;playground級&#xff09;1.2. Agent & RAG1.3. LangChain & LangGraph1.4. MCP, Model Context Protocol1.5. Ollama1.6. Coze & Dify2.AI 算法2.1. G…

uniapp實現的圓形滾盤組件模板

采用 uniapp 實現的一款圓形滾盤示例組件模板, 支持 vue2、vue3&#xff0c;適配H5、微信小程序&#xff08;其他小程序未試過&#xff0c;可自行嘗試&#xff09; 代碼實現簡約易懂&#xff0c;用戶可根據自身需求下載模板&#xff0c;并進行擴展開發可到插件市場下載嘗試&…

無須炮解,打開即是Pro版

聊一聊 文檔或文件轉圖片&#xff0c;這個我有段時間沒有推薦了。 今天發現了一款非常好用的圖像格式轉換編輯軟件。 有需要的小伙伴請及時收藏&#xff0c;防止下次找不到。 軟件介紹 全能圖像格式轉換工具 這是一款全能的圖像轉換軟件&#xff0c;支持幾乎所有的圖像格式…

企業高性能web服務器——Nginx

Nginx介紹 Nginx是一個高性能的HTTP和反向代理服務器&#xff0c;也是一個郵件代理服務器。由俄羅斯的程序設計師Igor Sysoev所開發&#xff0c;官方測試nginx能夠支撐5萬并發鏈接&#xff0c;并且cpu、內存等資源消耗卻非常低&#xff0c;運行非常穩定。所以其特點是占有內存…

MCU控制ADAU1701,用System Workbench for STM32導入工程

作者的話 MCU控制ADAU1701&#xff0c;我有寫一個文檔詳細講步驟&#xff0c;里頭用到了System Workbench for STM32這個軟件&#xff0c;他是基于eclips內核的開發軟件&#xff0c;一般來講&#xff0c;設置好workspce工程就會出來&#xff0c;但是架不住就有設置好工程不出來…

SQL176 每個題目和每份試卷被作答的人數和次數

描述現有試卷作答記錄表exam_record&#xff08;uid用戶ID, exam_id試卷ID, start_time開始作答時間, submit_time交卷時間, score得分&#xff09;&#xff1a;iduidexam_idstart_timesubmit_timescore1100190012021-09-01 09:01:012021-09-01 09:41:01812100290022021-09-01 …

構建第三方軟件倉庫

1 下載第三方軟件到指定目錄[rootServer_b ~]# mkdir software [rootServer_b software]# wget https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.18_250724_x86_64_01.rpm2 安裝軟件信息采集工具[rootServer_b software]# yum install createrepo -y [rootServer_b softw…

Linux 管道命令及相關命令練習與 Shell 編程、Tomcat 安裝

2.實驗目的掌握 Linux 管道命令及相關命令&#xff08;cut、sort、wc、uniq、tee、tr、split&#xff09;的使用方法。學會使用 Shell 編程實現基本的計算器功能。掌握在 CentOS 7 系統中安裝 Tomcat 的方法。實驗內容1. Linux 管道命令及相關命令練習1.1 管道命令定義&#xf…

藍牙基礎:FIFO(First-In-First-Out)緩存區

在藍牙通信中&#xff0c;FIFO&#xff08;First-In-First-Out&#xff0c;先進先出&#xff09;緩存區是解決數據傳輸中“速度不匹配”和“時序異步”問題的核心機制&#xff0c;廣泛應用于藍牙芯片內部、協議棧各層級及主從設備交互中。其核心作用是臨時存儲數據&#xff0c;…

國內外主流源代碼平臺與高效開發指南

摘要 本文旨在為您提供一份實用的源代碼獲取與開發指南。我們將首先梳理國內外最主流的源代碼托管平臺&#xff0c;并重點介紹如何利用這些平臺上的開源項目。接著&#xff0c;本文將為您規劃一條針對初學者的“最快最性價比”的開發路徑&#xff0c;從環境配置、項目管理到實…

任務進度狀態同步 萬能版 參考 工廠+策略+觀察者設計模式 +鎖設計 springboot+redission

文章目錄概要效果解釋狀態流轉說明設計AI任務實體類AI任務狀態枚舉AI模型枚舉基礎實體類簡單字典接口工廠策略模式 接口設計AiJobProcessorAiJobProcessorFactory觀察者模式AI任務相關的EventMyEventListenerMyEventPubLisherRedissonConfig定時任務實現ReplicateJobProcessorR…

printf函數格式化輸出攻略

目錄 一、基本用法 二、占位符 基本用法 常用占位符 字符串占位符示例 多占位符示例 注意事項 三、占位符列表 基本數據類型占位符 浮點數占位符 特殊類型占位符 長度修飾符 使用示例 注意事項 四、輸出格式 1、限定寬度 基本用法 左對齊輸出 浮點數寬度限制…

AI小智單片機esps32-s3燒錄教程

1. 下載代碼到本地 代碼地址&#xff1a;https://github.com/78/xiaozhi-esp32 2. vscode安裝環境 安裝一下這個插件 3. esp32-s3通過數據線連接電腦 【圖片】 4. vscode選擇對應配置 如果是用自己的服務還得改下地址 5. 點擊構建 6. 點擊燒錄

socket編程中系統調用send()詳細講解

在 socket 編程中&#xff0c;send() 是用于在已連接的套接字上發送數據的系統調用&#xff0c;主要用于 TCP 協議&#xff08;也可用于 UDP&#xff0c;但需配合連接操作&#xff09;。它負責將用戶態的數據傳遞到內核緩沖區&#xff0c;再由內核協議棧&#xff08;如 TCP/IP&…

Eclipse JSP/Servlet:深入解析與最佳實踐

Eclipse JSP/Servlet:深入解析與最佳實踐 引言 Eclipse JSP/Servlet 是 Java 企業版(Java EE)的核心技術之一,它為 Web 開發者提供了一個強大的平臺來構建動態和交互式的 Web 應用程序。本文將深入探討 Eclipse JSP/Servlet 的概念、工作原理以及最佳實踐,幫助開發者更好…

CNB私有化部署Dify(零成本)教程

本篇文章介紹一下如何進行dify的私有化部署的過程&#xff1a;dify定位是開源的LLM應用平臺&#xff0c;搭建自己的這個AI應用&#xff0c;而我們非常熟悉的這個coze實際上是通過搭積木一樣搭建AI應用&#xff0c;我選擇從dify開始進行了解學習 1.前置準備 我們需要有這個騰訊云…

imx6ull-驅動開發篇16——信號量與互斥體

目錄 前言 信號量 概念與特性 信號量 API 函數 互斥體 概念與特性 互斥體 API 函數 前言 Linux 內核提供的幾種并發和競爭的處理方法&#xff0c;我們學習了&#xff1a; 驅動開發篇14——原子操作 驅動開發篇15——linux自旋鎖 本講我們就繼續學習&#xff1a;信號…

Bug 記錄:SecureRandom.getInstanceStrong()導致驗證碼獲取阻塞

問題描述&#xff1a; 在發送驗證碼到郵件中&#xff0c;接口調用時卡在生成驗證碼階段&#xff0c;導致驗證碼功能完全不可用&#xff1b; 經排查開發環境一切正常&#xff0c;測試環境會重現此問題&#xff1b;問題分析&#xff1a; 現象&#xff1a; 代碼卡在 SecureRandom.…

商派小程序商城(小程序/官網/APP···)的范式躍遷與增長再想象

2025年&#xff0c;品牌官方商城應該如何定義&#xff1f;—— 還是一套“電商貨架”&#xff1f;在商派看來&#xff0c;現如今“品牌官方商城”則需要重新定義&#xff0c;結合不同品牌企業的業務發展需求&#xff0c;也就有著更多豐富的定義和組合想象——如&#xff0c;商城…