C語言register關鍵字的使用_第1頁
C語言register關鍵字的使用_第2頁
C語言register關鍵字的使用_第3頁
C語言register關鍵字的使用_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——C語言register關鍵字的使用C語言register關鍵字的使用

register:這個關鍵字苦求編譯器盡可能的將變量存在CPU內部寄放器中,而不是通過內存尋址訪問,以提高效率。留神是盡可能,不是十足。你想想,一個CPU的寄放器也就那么幾個或幾十個,你要是定義了好多好多register變量,它累死也可能不能全部把這些變量放入寄放器吧,輪也可能輪不到你。關于該關鍵字你了解多少呢?下面是相關的學識,接待閱讀。

一、皇帝身邊的小太監(jiān)寄放器

不知道什么是寄放器?那見過太監(jiān)沒有?沒有?其實我也沒有。沒見過不要緊,見過就麻煩大了。^_^,大家都看過古裝戲,那些皇帝們要閱讀奏章的時候,大臣總是先將奏章交給皇帝旁邊的小太監(jiān),小太監(jiān)呢再交給皇帝同志處理。這個小太監(jiān)只是個中轉站,并無別的功能。

好,那我們再聯(lián)想到我們的CPU。CPU不就是我們的皇帝同志么?大臣就相當于我們的內存,數(shù)據(jù)從他這拿出來。那小太監(jiān)就是我們的寄放器了這里先不考慮CPU的高速緩存區(qū)。數(shù)據(jù)從內存里拿出來先放到寄放器,然后CPU再從寄放器里讀取數(shù)據(jù)來處理,處理完后同樣把數(shù)據(jù)通過寄放器存放到內存里,CPU不直接和內存打交道。這里要說明的一點是:小太監(jiān)是主動的從大臣手里接過奏章,然后主動的交給皇帝同志,但寄放器沒這么自覺,它從不主動干什么事。一個皇帝可能有好些小太監(jiān),那么一個CPU也可以有好多寄放器,不同型號的CPU擁有寄放器的數(shù)量不一樣。

為啥要這么麻煩啊?速度!就是由于速度。寄放器其實就是一塊一塊小的存儲空間,只不過其存取速度要比內存快得多。進水樓臺先得月嘛,它離CPU很近,CPU一伸手就拿到數(shù)據(jù)了,比在那么大的一塊內存里去探索某個地址上的數(shù)據(jù)是不是快多了?那有人問既然它速度那么快,那我們的內存硬盤都改成寄放器得了唄。我要說的是:你真有錢!

二、舉例

register修飾符示意編譯程序相應的變量將被頻繁地使用,假設可能的話,應將其保存在CPU的寄放器中,以加快其存儲速度。例如下面的內存塊拷貝代碼,

#ifdefNOSTRUCTASSIGN

memcpyd,s,l

registerchar*d;

registerchar*s;

registerinti;

whilei--

*d++=*s++;

#endif

三、使用register修飾符的留神點

但是使用register修飾符有幾點限制。

首先,register變量務必是能被CPU所采納的類型。這通常意味著register變量務必是一個單個的值,并且長度理應小于或者等于整型的長度。不過,有些機器的寄放器也能存放浮點數(shù)。

其次,由于register變量可能不存放在內存中,所以不能用“”來獲取register變量的地址。

由于寄放器的數(shù)量有限,而且某些寄放器只能采納特定類型的'數(shù)據(jù)如指針和浮點數(shù),因此真正起作用的register修飾符的數(shù)目和類型都憑借于運行程序的機器,而任何多余的register修飾符都將被編譯程序所疏忽。

在某些處境下,把變量保存在寄放器中反而會降低程序的運行速度。由于被占用的寄放器不能再用于其它目的;或者變量被使用的次數(shù)不夠多,缺乏以裝入和存儲變量所帶來的額外開銷。

早期的C編譯程序不會把變量保存在寄放器中,除非你命令它這樣做,這時register修飾符是C語言的一種很有價值的補充。然而,隨著編譯程序設計技術的進步,在抉擇那些變量理應

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論