C語言register的用法和淺析
阿新 • • 發佈:2022-05-09
在C語言中,register算是不太難的一個關鍵字。
用register宣告的變數是暫存器變數,是存放在CPU的暫存器裡的。而我們平時宣告的變數是存放在記憶體中的。雖說記憶體的速度已經很快了,不過跟暫存器比起來還是差得遠。
暫存器變數和普通變數比起來速度上的差異很大,畢竟CPU的速度遠遠大於記憶體的速度。暫存器有這麼兩個特點,一個是運算速度快,一個是不能取地址。
學過C的都應該知道每一個變數在記憶體中都佔有一定的的空間,來存放資料。但是在暫存器中的變數是不能取地址的,編譯器會報錯。
關於register關鍵字,在《C與指標》這一本書的都151頁,作者這樣說到:
“在許多機器上,register變數所產生的程式碼將比靜態記憶體中的變數和堆疊中的變數所產生的程式碼執行速度更快。
但是這取決於你的環境,許多當前的編譯器比程式設計師更加懂得怎樣合理分配暫存器。”