一、關鍵字
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變量的歷史。<