在程式執行時,根據需要到記憶體中相應的
儲存單元中呼叫,如果乙個變數在程式中頻繁使用,例如迴圈變數,那麼,系統就必須多次訪問記憶體中的該單元,影響程式的執行效率。因此,c\c++語言還定義了一種變數,不是儲存在記憶體上,而是直接儲存在cpu中的暫存器中,這種變數稱為暫存器變數。
暫存器變數的定義形式是:
register 型別識別符號 變數名
暫存器是與機器硬體密切相關的,不同型別的計算機,暫存器的數目是不一樣的,通常為2到3個,對於在乙個函式中說明的多於2到3個的暫存器變數,c
編譯程式會自動地將暫存器變數變為
自動變數。
由於受硬體暫存器長度的限制,所以暫存器變數只能是char、int或
指標型。暫存器說明符只能用於說明函式中的變數和函式中的
形參,因此不允許將
外部變數或靜態變數說明為"register"。
register型變數常用於作為迴圈控制變數,這是使用它的高速特點的最佳場合。比較下面兩個程式的運算速度。
/* 程式1 */
main ( )
/* 程式2 */
#include
main( )
這兩個程式中,前者使用了兩個暫存器變數,後者使用了兩個
自動變數程式除此之外完全一樣。但執行時感覺的執行速度是不同的,前者使用暫存器變數的程式要比後者使用
自動變數的程式要快。(如果在tubro c的環境下執行程式2,則應該將
編譯器優化選項"use register variable"開關關上(off),否則,編譯器自動優化程式使用暫存器,兩個程式會得到相同的結果。)
由於register變數使用的是硬體cpu中的暫存器,暫存器變數無位址,所以不能使用取位址運算子"&"求暫存器變數的位址。
暫存器變數
c語言中的變數按儲存區域可以分為三種 堆疊中的自動變數,普通記憶體中得靜態變數,硬體暫存器變數。由於暫存器變數直接存放在cpu中,而不在記憶體中,所以訪問速度極快。一般應用於需要大量次數訪問的變數。暫存器變數只能存放int char和指標型別的資料,而且暫存器變數不能過多的使用,否則反而會降低運算速...
暫存器變數
c c 語言定義了一種變數,不是儲存在記憶體上,而是直接儲存在 中的暫存器中,稱為暫存器變數 特點 讀取和改變的速度更快,高速 語法形式 register 型別識別符號 變數名 由於受硬體暫存器長度的限制,暫存器變數只能是char int或指標型。暫存器說明符只能用於說明中的變數和函式中的形參,因此...
暫存器變數
之前竟然沒聽過c語言還有暫存器,好可憐,我是小白請見諒,哈哈 簡單總結了幾條關於register變數應該知道的東西,如下 1.暫存器變數可以用來優化加速c語言程式 2.聲名只需在型別前多加register 即可,eg register int quick quick 就是乙個整形的暫存器變數 3.r...