暫存器存在於cpu內部,運算速度非常快, 因為記憶體中的資料必須載入暫存器才能計算。如果直接定義乙個變數為暫存器變數,則少了載入等過程自然會快。對於頻繁使用的變數可以把它放在暫存器中來提速度。
對於vc編譯器會自動優化,即使沒有宣告暫存器變數,vc也會自動優化。
對於gcc編譯器就不會自動優化。
定義乙個暫存器變數:
void main()
接下來,通過gcc編譯器來編譯下面**,測試執行速度。
#include#include#includevoid main4()
printf("%f\n",res);
time(&end); //獲取當前時間放在end中
printf("%d",(unsigned int)(end - start)); //獲取時間差
}
通過上面**可以得出結論,對於頻繁使用的變數完全可以給它前面加上關鍵字register, 定義成暫存器變數。
最後值得注意下面2點:
//全域性變數最好不要占用暫存器,會影響程式的速度
register int num = 1000;
//靜態變數無法定義為暫存器變數,靜態變數存在靜態區
register static double res = 0.0;
C語言 暫存器變數與記憶體變數
暫存器變數是什麼?及它的儲存種類有哪些?靜態變數 自動變數與暫存器變數的儲存 前兩天看師兄給的c語言的一本小冊子,看到 記憶體變數或暫存器變數是指程序執行過程中的變數是在記憶體中還是在暫存器中的變數。以前學的時候從來沒有注意過,記憶體變數和暫存器變數指的是什麼呢?這裡和語言中宣告的全域性變數 區域性...
暫存器變數
在程式執行時,根據需要到記憶體中相應的 儲存單元中呼叫,如果乙個變數在程式中頻繁使用,例如迴圈變數,那麼,系統就必須多次訪問記憶體中的該單元,影響程式的執行效率。因此,c c 語言還定義了一種變數,不是儲存在記憶體上,而是直接儲存在cpu中的暫存器中,這種變數稱為暫存器變數。暫存器變數的定義形式是 ...
暫存器變數
c語言中的變數按儲存區域可以分為三種 堆疊中的自動變數,普通記憶體中得靜態變數,硬體暫存器變數。由於暫存器變數直接存放在cpu中,而不在記憶體中,所以訪問速度極快。一般應用於需要大量次數訪問的變數。暫存器變數只能存放int char和指標型別的資料,而且暫存器變數不能過多的使用,否則反而會降低運算速...