欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中register關鍵字舉例詳解

 更新時間:2023年03月08日 10:14:05   作者:允彥  
register用來聲明變量,然后聲明出來的變量是直接放在cpu的寄存器當中,而非就是通過內存尋址訪問,這樣效率更高,下面這篇文章主要給大家介紹了關于C++中register關鍵字的相關資料,需要的朋友可以參考下

register 簡介:

register 就像是漢語和英語中的形容詞(不要問為什么只有兩種語言,因為小編只會這兩種),在 C++ 中 register 是用來修飾變量的。

register 的作用:

register 聲明的變量是直接放在cpu的寄存器當中,而非就是通過內存尋址訪問,這樣就可以大大的提高程序的運行效率。

總而言之,寫上不會虧。

還需要注意,register 聲明變量只能在主函數(shù)或自定義內部。注意:是內部,定義在外面是會報錯的。

for(int i=1;i<=1000000;i++)
{
	......
}
 
for(register int i=1;i<=1000000;i++)
{
	......
}

在第一個 for 循環(huán)中,變量 i 存儲在內存中,cpu 每次要從內存中取出變量 i,這樣 cpu 就要來回讀取10000次,只是很低效的。

而在第二個 for 循環(huán)中,cpu每次都會直接去寄存器上讀取變量i,而不用再去內存讀取,因此,代碼的效率也會大大提高。

補充知識:register函數(shù)的限制

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

2、因為register變量可能不存放在內存中,所以不能用“&”來獲取register變量的地址。

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

4、只有局部自動變量和形式參數(shù)可以作為寄存器變量,其它(如全局變量)不行。

5、局部靜態(tài)變量不能定義為寄存器變量。不能寫成:register static int a, b, c;

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

7、早期的C編譯程序不會把變量保存在寄存器中,除非你命令它這樣做,這時register修飾符是C語言的一種很有價值的補充。然而,隨著編譯程序設計技術的進步,在決定哪些變量應該被存到寄存器中時,C編譯環(huán)境能比程序員做出更好的決定。實際上,許多編譯程序都會忽略register修飾符,因為盡管它完全合法,但它僅僅是暗示而不是命令。

總結

到此這篇關于C++中register關鍵字的文章就介紹到這了,更多相關C++ register關鍵字內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++實現(xiàn)獲取指定代碼段的cpu占用

    C++實現(xiàn)獲取指定代碼段的cpu占用

    這篇文章主要為大家詳細介紹了C++實現(xiàn)獲取指定代碼段的cpu占用的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2023-12-12
  • C語言責任鏈模式示例代碼

    C語言責任鏈模式示例代碼

    大家好,本篇文章主要講的是C語言責任鏈模式示例代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C語言實現(xiàn)學生選課系統(tǒng)

    C語言實現(xiàn)學生選課系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)學生選課系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C語言實現(xiàn)計算樹的深度的方法

    C語言實現(xiàn)計算樹的深度的方法

    這篇文章主要介紹了C語言實現(xiàn)計算樹的深度的方法,針對數(shù)據(jù)結構中樹進行操作的方法,在算法設計中比較常見,需要的朋友可以參考下
    2014-09-09
  • 淺談C++高并發(fā)場景下讀多寫少的優(yōu)化方案

    淺談C++高并發(fā)場景下讀多寫少的優(yōu)化方案

    本文主要介紹了淺談C++高并發(fā)場景下讀多寫少的優(yōu)化方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 詳解c++ 繼承

    詳解c++ 繼承

    這篇文章主要介紹了c++ 繼承的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C++超詳細講解auto與nullptr的使用

    C++超詳細講解auto與nullptr的使用

    C++11提供了nullptr用來取代0或者NULL。在C++11之前,使用NULL為空指針賦初值,但NULL其實就是0,這時會把NULL當成0來用;在C++11中,我們在聲明一個變量或對象,指定它的類型時,可以不使用變量本身的類型而使用auto替代
    2022-05-05
  • C++集體數(shù)據(jù)交換實現(xiàn)示例講解

    C++集體數(shù)據(jù)交換實現(xiàn)示例講解

    這篇文章主要介紹了C++集體數(shù)據(jù)交換實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-11-11
  • C語言中強制類型轉換的常見方法

    C語言中強制類型轉換的常見方法

    強制類型轉換是一種將一個數(shù)據(jù)類型轉換為另一個數(shù)據(jù)類型的方法,這篇文章主要為大家整理了C語言中強制類型轉換的方法,需要的可以參考一下
    2023-05-05
  • C++實現(xiàn)彩色飛機大戰(zhàn)

    C++實現(xiàn)彩色飛機大戰(zhàn)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)彩色飛機大戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10

最新評論