register 關鍵字解析

2021-06-28 22:23:23 字數 498 閱讀 4697

#include

void main()

和下面的

void main()

有什麼區別啊 『

還有就是register在什麼情況下用呀?

前邊程式中的i是預設的自動變數(auto),自動變數在程式呼叫的時候是分配臨時的儲存空間,呼叫的時候也是從記憶體中呼叫的,這也是和register最大的不同,register變數的值是存放在cpu中的暫存器中,呼叫時直接從暫存器中取出參加運算,存放在暫存器中的變數值呼叫需要的時間短,節省內從,如上面的簡單程式用auto變數和register變數時沒有多大區別的,在大型程式中這種節約才能體現的出來。

register 說明:

(1)只有區域性自動變數和形式引數可以作為暫存器變數,其他(如全域性變數)不行。

(2)乙個計算機系統中的暫存器數目是有限的,不能定義任意多個暫存器變數。

(3)區域性靜態變數不能定義為暫存器變數。

(4)這個變數已經過時,因為現在的計算機處理速度夠快,所以很少使用

register關鍵字介紹

1 register修飾符暗示編譯程式相應的變數將被頻繁地使用,如果可能的話,應將其儲存在cpu的暫存器中,以加快其儲存速度。例如下面的記憶體塊拷貝 procedure for the assignment of structures,if the c compiler doesn t suppor...

關鍵字volatile和register

用關鍵字volatile宣告變數,是用來告訴編譯器每次對此變數的引用都需要從記憶體位址中讀取,即取消編譯器對此變數的優化編譯。當某次引用沒用volatile宣告的變數時,其被編譯器從記憶體位址中讀取到ax 某通用暫存器 中,那麼在其後的引用中,如果ax暫存器沒用被改變,那麼編譯器會優化成直接讀取ax...

C語言關鍵字register

功能 用關鍵字register修飾變數,是想將變數變成暫存器變數,儲存在cpu的內部暫存器中,省去了cpu從記憶體抓取資料的時間,提高了程式的執行效率。適用型別 頻繁被訪問的變數或迴圈變數可以用register修飾 對編譯系統而言,只是 建議性的,而非指令性的 注意事項 1 register只能修飾...