c語言中的變數按儲存區域可以分為三種:堆疊中的自動變數,普通記憶體中得靜態變數,硬體暫存器變數。由於暫存器變數直接存放在cpu中,而不在記憶體中,所以訪問速度極快。一般應用於需要大量次數訪問的變數。暫存器變數只能存放int ,char和指標型別的資料,而且暫存器變數不能過多的使用,否則反而會降低運算速度。但是我們將資料型別定義為
register
int型別難道真的能提高運算速度嗎?
int main(int argc, const char * argv)
nsdate *date1=[nsdate date];
double x=[date1 timeintervalsincedate:date];
nslog(@"%f",x);
return 0;
}
實驗發現,將資料定義為
register
int 並沒有對時間照成多少影響。
register int a=0;
2015-01-23 09:35:15.526 test[2945:303] 7.588779
int a=0;
2015-01-23 09:34:39.640 test[2926:303] 7.146115
原因是register 並不是乙個指令,僅僅是對編譯器的乙個建議,編譯器會根據情況將資料放入暫存器中。所以速度可能並不會差太多,因此除非有特殊需要,否則不必將資料定義為register。
暫存器變數
在程式執行時,根據需要到記憶體中相應的 儲存單元中呼叫,如果乙個變數在程式中頻繁使用,例如迴圈變數,那麼,系統就必須多次訪問記憶體中的該單元,影響程式的執行效率。因此,c c 語言還定義了一種變數,不是儲存在記憶體上,而是直接儲存在cpu中的暫存器中,這種變數稱為暫存器變數。暫存器變數的定義形式是 ...
暫存器變數
c c 語言定義了一種變數,不是儲存在記憶體上,而是直接儲存在 中的暫存器中,稱為暫存器變數 特點 讀取和改變的速度更快,高速 語法形式 register 型別識別符號 變數名 由於受硬體暫存器長度的限制,暫存器變數只能是char int或指標型。暫存器說明符只能用於說明中的變數和函式中的形參,因此...
暫存器變數
之前竟然沒聽過c語言還有暫存器,好可憐,我是小白請見諒,哈哈 簡單總結了幾條關於register變數應該知道的東西,如下 1.暫存器變數可以用來優化加速c語言程式 2.聲名只需在型別前多加register 即可,eg register int quick quick 就是乙個整形的暫存器變數 3.r...